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