Merge pull request 'worker/receiver: don’t retry unsupported actions' (#902) from Oneric/akkoma:receiver_ignore_unsupported_actions into develop
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
ci/woodpecker/push/build-arm64 Pipeline was successful
ci/woodpecker/push/build-amd64 Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful

Reviewed-on: #902
This commit is contained in:
Oneric 2025-05-09 20:56:19 +00:00
commit 6c3ea04078
3 changed files with 19 additions and 1 deletions

View file

@ -182,6 +182,10 @@ def fetch_object_from_id(id, options \\ []) do
log_fetch_error(id, e)
{:reject, reason}
{:transmogrifier, {:error, reason}} = e ->
log_fetch_error(id, e)
{:error, reason}
{:transmogrifier, reason} = e ->
log_fetch_error(id, e)
{:error, reason}

View file

@ -686,6 +686,16 @@ defp handle_incoming_normalised(
end
end
defp handle_incoming_normalised(
%{
"type" => "Undo",
"object" => %{"type" => "Delete"}
},
_options
) do
{:error, :unsupported}
end
# For Undos that don't have the complete object attached, try to find it in our database.
defp handle_incoming_normalised(
%{
@ -727,7 +737,7 @@ defp handle_incoming_normalised(
end
end
defp handle_incoming_normalised(_, _), do: :error
defp handle_incoming_normalised(_, _), do: {:error, :unsupported}
@spec get_obj_helper(String.t(), Keyword.t()) :: {:ok, Object.t()} | nil
def get_obj_helper(id, options \\ []) do

View file

@ -43,6 +43,10 @@ def perform(%Job{args: %{"op" => "incoming_ap_doc", "params" => params}}) do
{:error, :ignore} ->
{:cancel, :ignore}
{:error, :unsupported} ->
Logger.info("Received unsupported action: #{inspect(params)}")
{:cancel, :unsupported}
# invalid data or e.g. deleting an object we don't know about anyway
{:error, {:validate, issue}} ->
Logger.info("Received invalid AP document: #{inspect(issue)}")