Requisições da caixa de entrada do ActivityPub causando timeouts nos workers do Pitchfork

Estou observando timeouts repetidos dos workers do Pitchfork na minha instância do Discourse (2026.10.0-latest).

Após analisar os logs de produção, 12 dos 13 avisos de timeout estavam relacionados a requisições da caixa de entrada do ActivityPub, especificamente durante a resolução de atores remotos para verificação de assinaturas HTTP.

A backtrace relevante:

Pitchfork worker is about to timeout,
dumping backtrace for main thread

excon/socket.rb:368:in 'IO.select'
excon/socket.rb:79:in 'Excon::Socket#readline'
excon.rb:255:in 'Excon.get'

discourse_activity_pub/request.rb:70:in 'Request#perform'
discourse_activity_pub/request.rb:34:in 'Request#get_json_ld'
discourse_activity_pub/json_ld.rb:71:in 'JsonLd.request_object'
discourse_activity_pub/a_p/object.rb:251:in 'AP::Object.resolve'

signature_verification.rb:254:in 'actor_from_key_id'
signature_verification.rb:61:in 'signed_request_actor'
inboxes_controller.rb:31:in 'process_json'
inboxes_controller.rb:10:in 'create'

Parece que a resolução de atores remotos é executada de forma síncrona durante o processamento da caixa de entrada, o que potencialmente bloqueia os workers do Pitchfork quando servidores remotos respondem lentamente.

Também habilitei activity_pub_verbose_logging por aproximadamente 24 horas e notei tentativas repetidas de resolver atores do Mastodon excluídos, retornando HTTP 410 Gone, resultando em inúmeros avisos de falha no processamento de atividades Delete.

Exemplo:

[Discourse Activity Pub] GET request to
https://mastodon.social/ap/users/115676297044305006
failed: {"error":"Gone"}

[Discourse Activity Pub] Failed to resolve actor
[Discourse Activity Pub] Failed to process Delete activity:
Unable to create actor

Não confirmei se essas atividades Delete com falha estão diretamente relacionadas aos timeouts dos workers.

A resolução síncrona de atores remotos durante a verificação de assinatura da caixa de entrada é um comportamento esperado? O tratamento de timeout ou o cache poderiam ser melhorados para evitar o bloqueio dos workers web?

Ficarei feliz em fornecer logs adicionais sanitizados, se necessário.