From 2ddff7e3860cd0076a6d9a881e6d747835247922 Mon Sep 17 00:00:00 2001 From: Oneric Date: Wed, 18 Dec 2024 21:55:32 +0100 Subject: [PATCH] transmogrifier: gracefully ignore Delete of unknown objects It's quite common to receive spurious Deletes, so we neither want to waste resources on retrying nor spam "invalid AP" logs --- lib/pleroma/web/activity_pub/transmogrifier.ex | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 01f39e985..6e6244b7c 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -577,12 +577,13 @@ defp handle_incoming_normalised( # We'd still like to process side effects so insert a fake tombstone and retry # (real tombstones from Object.delete do not have an actor field) with {:ok, object_id} <- ObjectValidators.ObjectID.cast(data["object"]), - %Activity{data: %{"actor" => actor}} <- - Activity.create_by_object_ap_id(object_id) |> Repo.one(), + {_, %Activity{data: %{"actor" => actor}}} <- + {:create, Activity.create_by_object_ap_id(object_id) |> Repo.one()}, {:ok, tombstone_data, _} <- Builder.tombstone(actor, object_id), {:ok, _tombstone} <- Object.create(tombstone_data) do handle_incoming(data) else + {:create, _} -> {:error, :ignore} _ -> e end else