Como Resolver o Erro ‘Webfinger Lookup Failed’ no Mastodon
🔍 WiseChecker

Como Resolver o Erro ‘Webfinger Lookup Failed’ no Mastodon

Ao tentar seguir um usuário em outra instância do Mastodon ou pesquisar uma conta remota, você pode ver o erro “Webfinger Lookup Failed”. Esse erro significa que sua instância não consegue verificar se o usuário remoto existe. O problema geralmente está em um domínio mal configurado, um registro DNS ausente ou uma falha temporária no servidor. Este artigo explica o que causa a falha na consulta Webfinger e fornece instruções passo a passo para corrigi-lo.

Principais conclusões: Corrigindo o erro Webfinger Lookup Failed no Mastodon

  • Registro DNS CNAME para webfinger: Certifique-se de que o subdomínio webfinger.seudominio.com resolva para o mesmo IP da sua instância Mastodon.
  • Configuração do proxy reverso NGINX ou Apache: Verifique se o caminho /.well-known/webfinger está sendo redirecionado para o processo do Mastodon.
  • Variável de ambiente LOCAL_DOMAIN do Mastodon: Confirme que LOCAL_DOMAIN corresponde exatamente ao seu domínio público, incluindo subdomínios.

Por que o Mastodon exibe o erro Webfinger Lookup Failed

Webfinger é um protocolo que o Mastodon usa para descobrir a URL do perfil de um usuário a partir do seu endereço no formato de e-mail (por exemplo, @usuario@exemplo.com). Quando você pesquisa um usuário remoto, sua instância envia uma solicitação ao endpoint Webfinger do domínio remoto em https://exemplo.com/.well-known/webfinger?resource=acct:usuario@exemplo.com. O servidor remoto deve responder com um JSON que inclui a URL do perfil do usuário e o endpoint de activity streams.

O erro “Webfinger Lookup Failed” ocorre quando essa solicitação retorna um erro HTTP (404, 500 ou timeout) ou quando a resposta está malformada. As causas comuns incluem:

  • Registros DNS ausentes ou incorretos para o domínio remoto
  • Um proxy reverso (NGINX, Apache, Caddy) que não encaminha o caminho Webfinger para o backend do Mastodon
  • O próprio Mastodon não está em execução ou mal configurado na instância remota
  • Um firewall ou CDN bloqueando a solicitação

A correção depende se você é o administrador da instância remota ou um usuário tentando seguir alguém. Este guia aborda ambos os cenários.

Passos para corrigir o Webfinger Lookup Failed na sua própria instância

Se você administra a instância Mastodon que está falhando na consulta, siga estes passos para resolver o problema. Se você é um usuário em uma instância diferente, pule para a próxima seção.

  1. Verifique o status do processo Mastodon
    Acesse seu servidor via SSH. Execute systemctl status mastodon-web para confirmar se o processo web está ativo. Se não estiver em execução, inicie-o com systemctl start mastodon-web.
  2. Verifique os registros DNS do seu domínio
    Use uma ferramenta como dig ou um verificador DNS online para confirmar que seu domínio possui um registro A (ou AAAA para IPv6) apontando para o IP do servidor. Verifique também se webfinger.seudominio.com resolve para o mesmo IP. Alguns CDNs exigem um registro CNAME para o subdomínio.
  3. Examine a configuração do proxy reverso
    Abra o arquivo de configuração do NGINX ou Apache. Procure pelo bloco de localização que lida com o caminho /.well-known/. Ele deve incluir um proxy pass para o backend do Mastodon (geralmente porta 3000 ou um socket Unix). Exemplo de bloco NGINX:
    location /.well-known/ {
      proxy_pass http://localhost:3000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  4. Teste o endpoint Webfinger diretamente
    No servidor, execute curl -I https://seudominio.com/.well-known/webfinger?resource=acct:admin@seudominio.com. Uma resposta bem-sucedida retorna HTTP 200 com Content-Type application/jrd+json. Se você vir um 404 ou 502, o proxy ou o Mastodon está mal configurado.
  5. Revise as variáveis de ambiente do Mastodon
    Edite o arquivo .env.production. Certifique-se de que LOCAL_DOMAIN está definido como seu domínio público (ex.: exemplo.com). Não inclua https://. Se você usa um subdomínio para o Mastodon (ex.: social.exemplo.com), defina LOCAL_DOMAIN para esse subdomínio e também defina WEB_DOMAIN se necessário.
  6. Reinicie os serviços do Mastodon
    Após fazer alterações, execute systemctl restart mastodon-web e systemctl reload nginx (ou equivalente no Apache).

O que fazer ao seguir um usuário remoto em outra instância

Se você é um usuário comum e vê esse erro ao tentar seguir alguém em um servidor Mastodon diferente, o problema provavelmente está na instância remota. No entanto, há algumas coisas que você pode verificar do seu lado.

  1. Confirme o endereço completo do usuário
    Certifique-se de ter o handle correto no formato @usuario@dominio. Digitar um domínio errado é a causa mais comum. Verifique a página de perfil do usuário para a string exata.
  2. Pesquise usando a URL completa
    Na barra de pesquisa do Mastodon, cole a URL completa do perfil do usuário (ex.: https://instanciaremota.com/@usuario). Isso ignora o Webfinger e usa a busca ActivityPub diretamente.
  3. Aguarde e tente novamente mais tarde
    A instância remota pode estar passando por uma falha temporária ou manutenção. Tente novamente após 30 minutos. Se o erro persistir, a instância pode ter um problema de configuração permanente.
  4. Entre em contato com o administrador da instância remota
    Se você não conseguir alcançar o usuário de outra forma, encontre o e-mail de contato do administrador ou a conta Mastodon da instância remota e relate o problema. Inclua a mensagem de erro exata e o handle que você tentou seguir.

Se o Webfinger Lookup ainda falhar após a correção principal

Mastodon retorna 500 Internal Server Error na solicitação Webfinger

Um erro 500 significa que o próprio aplicativo Mastodon está falhando. Verifique os logs do Mastodon com journalctl -u mastodon-web -n 50. Procure por exceções Ruby ou erros de conexão com o banco de dados. Causas comuns incluem um pool de conexões do banco de dados cheio ou uma gem ausente. Reinicie também o serviço sidekiq com systemctl restart mastodon-sidekiq.

CDN ou firewall bloqueando a solicitação

Cloudflare, CloudFront ou outros CDNs podem bloquear solicitações ao caminho /.well-known/ se não estiverem configurados para permitir a passagem. No Cloudflare, crie uma page rule que defina SSL como Full e garanta que o caminho não seja armazenado em cache. Para firewalls como iptables ou UFW, verifique se a porta 443 está aberta e se o rate limiting não está bloqueando o IP da instância remota.

Webfinger retorna 404 para usuários válidos

Um 404 indica que o endpoint Webfinger não está acessível ou o Mastodon não consegue encontrar o usuário. Verifique novamente o registro A do DNS e o caminho do proxy reverso. Verifique também se a conta do usuário não está suspensa ou excluída. No servidor Mastodon, execute RAILS_ENV=production bin/tootctl accounts lookup usuario para confirmar se a conta existe no banco de dados.

Item Configuração Correta Configuração Incorreta
Registro A do DNS Aponta para o IP do servidor Aponta para IP errado ou ausente
Caminho do proxy reverso Inclui proxy pass para /.well-known/ Ausente ou retorna arquivos estáticos
Variável LOCAL_DOMAIN Corresponde exatamente ao domínio público Tem subdomínio extra ou erro de digitação
Processo web do Mastodon Em execução e ouvindo Parado ou travado

Depois de corrigir os registros DNS, a configuração do proxy ou as variáveis de ambiente, a consulta Webfinger deve funcionar. Teste pesquisando um usuário remoto de outra instância. Se você é administrador, monitore também os logs do Mastodon em busca de erros recorrentes. Como etapa avançada, considere configurar um subdomínio webfinger dedicado com um registro CNAME para reduzir a carga no seu domínio principal.