Merge pull request 'Don’t retry delivery to explicitly deleted inboxes' (#968) from Oneric/akkoma:delivery_to_gone into develop
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/968
This commit is contained in:
commit
ca15f8f6c0
2 changed files with 26 additions and 6 deletions
|
|
@ -98,16 +98,25 @@ defp collect_apdelivery_error(:stop, %{result: {_, reason}}) do
|
|||
process_fail_reason(reason)
|
||||
end
|
||||
|
||||
defp collect_apdelivery_error(_, _) do
|
||||
defp collect_apdelivery_error(state, res) do
|
||||
Logger.info("Unknown AP delivery result: #{inspect(state)}, #{inspect(res)}")
|
||||
"cause_unknown"
|
||||
end
|
||||
|
||||
defp process_fail_reason(error) do
|
||||
case error do
|
||||
error when is_binary(error) -> error
|
||||
error when is_atom(error) -> "#{error}"
|
||||
%{status: code} when is_number(code) -> "http_#{code}"
|
||||
_ -> "error_unknown"
|
||||
error when is_binary(error) ->
|
||||
error
|
||||
|
||||
error when is_atom(error) ->
|
||||
"#{error}"
|
||||
|
||||
%{status: code} when is_number(code) ->
|
||||
"http_#{code}"
|
||||
|
||||
_ ->
|
||||
Logger.notice("Unusual AP delivery error mapped to 'unknown': #{inspect(error)}")
|
||||
"error_unknown"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,17 @@ def perform(%Job{
|
|||
end
|
||||
|
||||
def perform(%Job{args: %{"op" => "publish_one", "module" => module_name, "params" => params}}) do
|
||||
Federator.perform(:publish_one, String.to_existing_atom(module_name), params)
|
||||
res = Federator.perform(:publish_one, String.to_existing_atom(module_name), params)
|
||||
|
||||
case res do
|
||||
# instance / actor was explicitly deleted; there’s nothing to deliver to anymore
|
||||
# since we don’t know whether the whole instance is gone or just this actor,
|
||||
# do NOT immediately mark the instance as unreachable
|
||||
{:error, %{status: 410}} ->
|
||||
:ok
|
||||
|
||||
res ->
|
||||
res
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue