From eb2f8cae1339b3771f67ba9062467d174939c0a1 Mon Sep 17 00:00:00 2001 From: Johann150 Date: Wed, 22 Mar 2023 21:28:04 +0100 Subject: [PATCH] properly handle unresolvable move target --- packages/backend/src/remote/activitypub/models/person.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/remote/activitypub/models/person.ts b/packages/backend/src/remote/activitypub/models/person.ts index 76cd5a3da..17d9858e4 100644 --- a/packages/backend/src/remote/activitypub/models/person.ts +++ b/packages/backend/src/remote/activitypub/models/person.ts @@ -68,15 +68,12 @@ async function validateActor(x: IObject, resolver: Resolver): Promise { if (x.movedTo === uri) { throw new Error('invalid Actor: moved to self'); } + // This may throw an exception if we cannot resolve the move target. + // If we are processing an incoming activity, this is desired behaviour + // because that will cause the activity to be retried. await resolvePerson(x.movedTo, resolver) .then(moveTarget => { x.movedTo = moveTarget.id - }) - .catch((err: Error) => { - // Can't find the move target for some reason. - // Don't treat the actor as invalid, just ignore the movedTo. - logger.warn(`cannot find move target "${x.movedTo}", error: ${err.toString()}`); - delete x.movedTo; }); }