diff --git a/lib/pleroma/workers/receiver_worker.ex b/lib/pleroma/workers/receiver_worker.ex index b28442042..193b500f4 100644 --- a/lib/pleroma/workers/receiver_worker.ex +++ b/lib/pleroma/workers/receiver_worker.ex @@ -3,6 +3,8 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.ReceiverWorker do + require Logger + alias Pleroma.Web.Federator use Pleroma.Workers.WorkerHelper, queue: "federator_incoming" @@ -21,6 +23,16 @@ def perform(%Job{args: %{"op" => "incoming_ap_doc", "params" => params}}) do {:error, :already_present} -> {:discard, :already_present} + # invalid data or e.g. deleting an object we don't know about anyway + {:error, {:error, {:validate, issue}}} -> + Logger.info("Received invalid AP document: #{inspect(issue)}") + {:discard, :invalid} + + # rarer, but sometimes there’s an additional :error in front + {:error, {:error, {:error, {:validate, issue}}}} -> + Logger.info("Received invalid AP document: (3e) #{inspect(issue)}") + {:discard, :invalid} + {:error, _} = e -> e