Erro ‘Could Not Fetch Remote Account’ no Mastodon: Resolução
🔍 WiseChecker

Erro ‘Could Not Fetch Remote Account’ no Mastodon: Resolução

Ao tentar seguir, mencionar ou ver o perfil de um usuário em outra instância do Mastodon, você pode ver a mensagem de erro “Could Not Fetch Remote Account”. Esse erro geralmente significa que sua instância local não conseguiu completar a comunicação com o servidor remoto para baixar os dados do perfil. A causa costuma ser uma falha temporária de federação, um bloqueio de rede ou um registro DNS desatualizado na instância remota. Este artigo explica por que o erro ocorre e fornece um conjunto claro de etapas para resolvê-lo em sua própria instância.

Principais Pontos: Corrigindo o Erro de Busca de Conta Remota no Mastodon

  • Painel de administração do Mastodon > Federação > Resolver: Tente buscar manualmente a conta remota após uma tentativa falha.
  • Painel de administração do Mastodon > Sidekiq > Dead: Verifique se há jobs em segundo plano travados que bloqueiam a comunicação de federação.
  • Endpoint .well-known/host-meta da instância remota: Verifique se o servidor remoto expõe esse endpoint corretamente para que a federação funcione.

ADVERTISEMENT

Por que o Mastodon não consegue buscar uma conta remota

O Mastodon depende do ActivityPub, um protocolo descentralizado, para trocar dados entre instâncias. Quando você pesquisa ou interage com um usuário em outra instância, seu servidor envia uma requisição GET para o endpoint da API do servidor remoto, geralmente https://remoteinstance.com/users/username. O servidor remoto deve responder com um documento JSON-LD contendo os dados do perfil do usuário, incluindo nome de exibição, biografia, avatar e chave pública.

O erro “Could Not Fetch Remote Account” ocorre quando seu servidor não consegue receber ou interpretar esse documento JSON-LD. Várias condições podem causar essa falha:

Bloqueios em Nível de Rede

A instância remota pode estar bloqueando o endereço IP do seu servidor. Isso pode acontecer se sua instância foi sinalizada como spam ou se o administrador remoto adicionou manualmente seu servidor a uma lista de bloqueio. Algumas instâncias também usam firewalls ou Cloudflare para restringir o tráfego de faixas de IP desconhecidas.

Falha na Resolução de DNS

O resolvedor DNS do seu servidor pode não conseguir resolver o nome de domínio da instância remota. Isso pode acontecer se os registros DNS do domínio remoto estiverem mal configurados, expirados ou temporariamente inacessíveis. Sem um registro A ou AAAA válido, seu servidor não consegue abrir uma conexão TCP.

Problemas com Certificado SSL/TLS

O Mastodon exige HTTPS para todo o tráfego de federação. Se o certificado SSL da instância remota estiver expirado, inválido ou autoassinado, seu servidor rejeitará a conexão e não conseguirá buscar a conta. Isso é comum em pequenas instâncias pessoais que usam Let’s Encrypt mas não renovaram seus certificados a tempo.

Cache Desatualizado ou Corrompido no Seu Servidor

Sua instância armazena em cache os dados de perfis remotos para reduzir o uso de banda. Se a entrada de cache para um usuário remoto ficar corrompida ou desatualizada, o Mastodon pode se recusar a buscar os dados novamente e retornar o erro. Isso é especialmente comum após um usuário remoto mudar para outra instância ou excluir sua conta.

Passos para Resolver o Erro de Busca de Conta Remota

Siga estes passos em ordem. Teste após cada passo para ver se o erro desaparece.

  1. Limpe o cache da conta remota no seu servidor
    Abra o painel de administração do Mastodon. Vá para Preferências > Administração > Federação. Na caixa de pesquisa, digite o endereço completo do usuário remoto (por exemplo, @usuario@instanciaremota.com). Se a conta aparecer nos resultados, clique no nome da conta para abrir a página de detalhes. Clique em Resolver para forçar seu servidor a buscar novamente os dados do perfil. Se a conta não aparecer, seu servidor não tem entrada em cache, então prossiga para o próximo passo.
  2. Verifique o Sidekiq em busca de jobs mortos ou travados
    As requisições de federação são processadas por workers em segundo plano do Sidekiq. Se um worker travar ou um job ficar preso, seu servidor nunca completa a busca. No painel de administração, vá para Preferências > Administração > Sidekiq. Clique na aba Dead. Se você vir jobs relacionados à busca de contas remotas, clique em Retry all. Em seguida, clique na aba Queues e verifique se a fila chamada pull ou default não está sobrecarregada. Se a fila tiver mais de 1000 jobs pendentes, reinicie o serviço Sidekiq: sudo systemctl restart sidekiq no seu servidor.
  3. Verifique a resolução de DNS a partir do seu servidor
    Conecte-se via SSH ao seu servidor Mastodon. Execute dig instanciaremota.com +short. Se o comando retornar um endereço IP, o DNS está funcionando. Se não retornar nada ou der erro, seu servidor não consegue resolver o domínio. Verifique seu arquivo /etc/resolv.conf e certifique-se de que ele aponta para um servidor DNS funcional, como 8.8.8.8 ou 1.1.1.1. Você também pode limpar o cache DNS local com sudo systemd-resolve --flush-caches se estiver usando systemd-resolved.
  4. Teste o endpoint de federação da instância remota
    Do seu servidor, execute curl -I https://instanciaremota.com/.well-known/host-meta. Uma resposta bem-sucedida retorna o status HTTP 200 e um tipo de conteúdo application/xrd+xml. Se você receber um 403 ou 404, a instância remota não está expondo o endpoint necessário. Se receber um erro de certificado, execute curl -v https://instanciaremota.com e procure por SSL certificate problem na saída. Entre em contato com o administrador da instância remota para resolver esses problemas.
  5. Force manualmente uma busca via CLI do Mastodon
    Se as verificações no painel de administração e no Sidekiq não funcionarem, use a interface de linha de comando. Conecte-se via SSH ao seu servidor. Execute RAILS_ENV=production bin/tootctl accounts refresh instanciaremota.com. Este comando força o Mastodon a buscar novamente todas as contas remotas dessa instância. Substitua instanciaremota.com pelo domínio real. Aguarde 30 segundos e tente pesquisar pelo usuário remoto novamente.
  6. Reinicie o serviço web do Mastodon
    Como passo final, reinicie toda a pilha do Mastodon: sudo systemctl restart mastodon-web. Isso limpa quaisquer caches em memória e recarrega a configuração de federação. Após a reinicialização, tente visualizar o perfil remoto novamente.

ADVERTISEMENT

Se o Erro Persistir Após a Correção Principal

Instância remota bloqueou seu servidor

Algumas instâncias mantêm listas de bloqueio que impedem a federação com determinados domínios. Você pode verificar se seu servidor está bloqueado acessando o endpoint da API da instância remota diretamente do seu navegador: https://instanciaremota.com/api/v1/instance/domain_blocks?domain=suainstancia.com. Se a resposta incluir seu domínio, o administrador remoto bloqueou sua instância. Você deve contatar o administrador remoto e solicitar a remoção da lista de bloqueio.

Conta do usuário remoto foi excluída ou movida

Se o usuário remoto excluiu sua conta ou mudou para outra instância, o Mastodon não consegue buscar o perfil porque ele não existe mais na URL original. Verifique o status do usuário visitando a página de perfil diretamente em um navegador web. Se a página mostrar um 404 ou um redirecionamento, peça ao usuário o endereço da nova conta.

Firewall do seu servidor está bloqueando conexões de saída

O firewall do seu servidor pode estar bloqueando tráfego HTTPS de saída na porta 443. Execute sudo iptables -L -n para listar as regras atuais. Procure por uma regra REJECT ou DROP na cadeia OUTPUT para a porta 443. Se encontrar uma, adicione uma regra ACCEPT: sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT. Salve as regras para que persistam após reinicializações.

Busca de Federação no Mastodon: Instância Local vs Instância Remota

Item Instância Local Instância Remota
Papel no erro Inicia a requisição de busca Serve os dados da conta
Ponto de falha comum Cache desatualizado ou job travado no Sidekiq Certificado SSL ou configuração DNS incorreta
Ferramenta do administrador Painel de administração > Federação > Resolver Administrador remoto deve corrigir a configuração do servidor
Tempo de recuperação Segundos a minutos após a correção Depende da resposta do administrador remoto

Após concluir as etapas acima, você deve conseguir visualizar perfis remotos e interagir com usuários em outras instâncias. Se o erro foi causado por uma falha temporária de federação, a correção é imediata. Para problemas persistentes, verifique se as configurações de DNS e firewall do seu servidor estão corretas. Como dica avançada, você pode monitorar a saúde da federação ativando o registro de logs do Sidekiq em config/sidekiq.yml e revisando os logs com journalctl -u sidekiq -f.

ADVERTISEMENT