From 4a1693776f875355f2c7495f0ec3857a49de5bdf Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 14 Sep 2025 09:01:07 -0400 Subject: [PATCH] when processing an activity, refetch the user's public key if they don't already have one --- .../backend/src/queue/processors/InboxProcessorService.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/queue/processors/InboxProcessorService.ts b/packages/backend/src/queue/processors/InboxProcessorService.ts index 4efbb088c6..13b2885263 100644 --- a/packages/backend/src/queue/processors/InboxProcessorService.ts +++ b/packages/backend/src/queue/processors/InboxProcessorService.ts @@ -164,7 +164,12 @@ export class InboxProcessorService implements OnApplicationShutdown { // publicKey がなくても終了 if (authUser.key == null) { - throw new Bull.UnrecoverableError(`skip: failed to resolve user publicKey ${actorId}`); + // See if a key has become available since we fetched the actor + authUser.key = await this.apDbResolverService.refetchPublicKeyForApId(authUser.user); + if (authUser.key == null) { + // If it's still missing, then give up + throw new Bull.UnrecoverableError(`skip: failed to resolve user publicKey ${actorId}`); + } } // HTTP-Signatureの検証