fix: wrap majority of note assertion logic in try..catch to handle exceptions so that the lock is always released

This commit is contained in:
Julian Lam
2025-09-11 10:30:21 -04:00
parent 4f5e770c5f
commit 95fb084ca4

View File

@@ -64,6 +64,7 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => {
return null; return null;
} }
try {
if (!options.skipChecks) { if (!options.skipChecks) {
id = (await activitypub.checkHeader(id)) || id; id = (await activitypub.checkHeader(id)) || id;
} }
@@ -271,6 +272,11 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => {
]); ]);
return { tid, count }; return { tid, count };
} catch (e) {
winston.warn(`[activitypub/notes.assert] Could not assert ${id} (${e.message}), releasing lock.`);
await unlock(id);
return null;
}
}; };
Notes.assertPrivate = async (object) => { Notes.assertPrivate = async (object) => {