From f1a6cca2e1ea102d597649d7636a3108f7caf666 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 5 May 2025 15:18:44 +0200 Subject: [PATCH] Change activity distribution error handling to skip retrying for deleted accounts (#33617) --- app/workers/activitypub/delivery_worker.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb index 376c237a9..6a7574200 100644 --- a/app/workers/activitypub/delivery_worker.rb +++ b/app/workers/activitypub/delivery_worker.rb @@ -62,7 +62,7 @@ class ActivityPub::DeliveryWorker light = Stoplight(@inbox_url) do request_pool.with(@host) do |http_client| build_request(http_client).perform do |response| - raise Mastodon::UnexpectedResponseError, response unless response_successful?(response) || response_error_unsalvageable?(response) + raise Mastodon::UnexpectedResponseError, response unless response_successful?(response) || response_error_unsalvageable?(response) || unsalvageable_authorization_failure?(response) @performed = true end @@ -74,6 +74,10 @@ class ActivityPub::DeliveryWorker .run end + def unsalvageable_authorization_failure?(response) + @source_account.suspended_permanently? && response.code == 401 + end + def failure_tracker @failure_tracker ||= DeliveryFailureTracker.new(@inbox_url) end