Ao abrir a linha do tempo federada no Mastodon e ver um erro persistente Failed to fetch, seu cliente não consegue alcançar os servidores remotos que hospedam postagens de outras instâncias. Esse erro geralmente ocorre porque sua instância bloqueia conexões de saída para determinados servidores remotos, ou porque esses servidores limitaram ou bloquearam sua instância em retorno. Neste artigo, você aprenderá as causas exatas desse erro e as correções passo a passo que restauram sua linha do tempo federada.
Principais Conclusões: Corrigindo o Erro de Busca na Linha do Tempo Federada
- Administração > Federação > Bloqueios de domínio: Verifique se sua instância bloqueou o servidor remoto que você está tentando acessar.
- Administração > Sidekiq > Retentativas: Inspecione e limpe trabalhos em segundo plano travados que falham ao buscar conteúdo remoto.
- Sua conta do Mastodon > Preferências > Filtros: Verifique se nenhum filtro personalizado oculta acidentalmente linhas do tempo inteiras.
Por que a Linha do Tempo Federada Falha ao Buscar Postagens Remotas
As instâncias do Mastodon se comunicam entre si usando o protocolo ActivityPub. Quando você abre a linha do tempo federada, sua instância envia uma solicitação para cada servidor remoto cujas postagens foram armazenadas anteriormente ou que são mencionadas em postagens locais. Se algum desses servidores remotos estiver inacessível, toda a solicitação da linha do tempo pode falhar.
A causa raiz é quase sempre uma de três coisas:
Conexão de Saída Bloqueada pela Sua Instância
Administradores de instância podem bloquear domínios inteiros no nível do servidor. Se um servidor remoto estiver bloqueado, sua instância não enviará nenhuma solicitação para ele. O cliente então mostra Failed to fetch porque os dados da linha do tempo desse servidor nunca chegam.
Limitação de Taxa ou Bloqueio da Sua Instância pelo Servidor Remoto
Instâncias grandes às vezes limitam a taxa ou bloqueiam instâncias menores que enviam muitas solicitações. Se sua instância estiver na lista de bloqueio de um servidor remoto, esse servidor recusará conexões. A busca da linha do tempo falha para postagens desse servidor específico.
Trabalhos em Segundo Plano Travados no Sidekiq
O Mastodon usa o Sidekiq para processar tarefas em segundo plano, como buscar postagens remotas. Se um trabalho travar ou falhar repetidamente, o Sidekiq enfileirará retentativas. Quando a fila de retentativas fica cheia, novos trabalhos de busca não podem iniciar e a linha do tempo federada para de carregar.
Passos para Limpar o Erro Failed to Fetch na Linha do Tempo Federada
Siga estes passos em ordem. Cada passo resolve uma causa específica. Teste a linha do tempo federada após cada passo para ver se o erro desaparece.
Passo 1: Verificar Bloqueios de Domínio na Sua Instância
- Abra o painel de Administração
Faça login na sua conta do Mastodon como administrador. Clique em Preferências no menu superior direito e selecione Administração na barra lateral. - Navegue até Federação > Bloqueios de domínio
Na seção Administração, clique em Federação e depois em Bloqueios de domínio. Você verá uma lista de todos os domínios que sua instância bloqueia. - Remova qualquer bloqueio que afete a linha do tempo federada
Se você vir um domínio que corresponde a um servidor cujas postagens deseja ver, clique no botão Excluir ao lado desse domínio. Confirme a remoção. A instância agora permitirá conexões de saída para esse servidor.
Passo 2: Limpar Trabalhos Travados do Sidekiq
- Abra o painel do Sidekiq
Acessehttps://sua-instancia.exemplo.com/sidekiq. Pode ser necessário fazer login com suas credenciais de administrador. - Clique na aba Retentativas
No painel do Sidekiq, clique em Retentativas. Isso mostra todos os trabalhos em segundo plano que falharam e estão aguardando retentativa. - Exclua ou tente novamente os trabalhos travados
Se você vir muitas retentativas relacionadas à busca de postagens remotas, selecione todas marcando a caixa de seleção no topo da lista. Em seguida, clique no botão Excluir para removê-las. Alternativamente, clique em Tentar novamente para forçar uma única tentativa. - Reinicie o Sidekiq se necessário
Se a fila de retentativas estiver vazia, mas o erro persistir, reinicie o Sidekiq pela linha de comando:sudo systemctl restart mastodon-sidekiq. Isso limpa quaisquer processos travados.
Passo 3: Verificar os Filtros da Sua Conta
- Abra as preferências da sua conta
Clique em Preferências no menu superior direito. - Navegue até Filtros
Na barra lateral, clique em Filtros. Você verá quaisquer filtros personalizados que criou. - Revise os filtros que se aplicam à linha do tempo federada
Se um filtro estiver configurado para ocultar todas as postagens de um servidor específico, isso pode fazer com que a linha do tempo federada falhe ao carregar. Edite ou exclua qualquer filtro que tenha como alvo servidores remotos.
Passo 4: Testar com um Cliente ou Navegador Diferente
- Abra a interface web do Mastodon em uma janela privada do navegador
Use um navegador que você não usou antes para o Mastodon. Isso descarta problemas de cache local ou extensões. - Faça login e abra a linha do tempo federada
Se a linha do tempo carregar corretamente na janela privada, limpe o cache e os cookies do seu navegador normal para o domínio da sua instância.
Passo 5: Contatar o Administrador da Sua Instância
- Envie uma mensagem direta para seu administrador
Se você não é administrador, envie uma mensagem direta para o administrador da instância explicando que a linha do tempo federada mostra Failed to fetch. Inclua a mensagem de erro exata e o horário em que começou. - Peça para verificarem os logs do servidor
Os administradores podem consultar os logs do Mastodon em/var/log/mastodon/ou através do journalctl:sudo journalctl -u mastodon-web -f. Os logs mostrarão qual servidor remoto causou a falha.
Se a Linha do Tempo Federada Ainda Falhar Após a Correção Principal
Linha do Tempo Federada Carrega Lentamente e Depois Mostra Failed to Fetch
Isso geralmente significa que sua instância está tentando contatar um servidor remoto que está online, mas lento para responder. O cliente do Mastodon atinge o tempo limite antes que o servidor responda. A correção é aumentar o valor do tempo limite na configuração do Mastodon. Edite o arquivo .env.production e adicione ou modifique a linha STREAMING_API_TIMEOUT=30. Reinicie o serviço web com sudo systemctl restart mastodon-web.
Linha do Tempo Federada Funciona para Alguns Usuários, Mas Não para Outros
Se apenas alguns usuários veem o erro, a causa provável é um filtro por usuário ou uma extensão de navegador. Peça ao usuário afetado para desabilitar todas as extensões do navegador e testar em uma janela privada. Se o erro desaparecer, reative as extensões uma por uma para encontrar a culpada.
Linha do Tempo Federada Mostra Failed to Fetch Após uma Atualização da Instância
Após atualizar o Mastodon, tarefas de migração em segundo plano podem ser executadas por horas. Durante esse período, a linha do tempo federada pode falhar ao buscar novas postagens. Verifique o painel do Sidekiq para um grande número de trabalhos agendados. Aguarde a conclusão das migrações ou contate seu administrador para verificar o status da migração.
| Item | Linha do Tempo Local | Linha do Tempo Federada |
|---|---|---|
| Fonte de dados | Apenas postagens de usuários da sua instância | Postagens de todas as instâncias remotas conhecidas |
| Causa comum de falha | Servidor local fora do ar ou erro de banco de dados | Servidor remoto inacessível ou bloqueado |
| Método de correção | Reiniciar serviços do Mastodon ou reparar banco de dados | Remover bloqueio de domínio ou limpar retentativas do Sidekiq |
| Tempo de carregamento | Rápido, pois apenas dados locais são buscados | Mais lento, pois muitas requisições remotas são feitas |
O erro Failed to fetch na linha do tempo federada é quase sempre causado por um domínio bloqueado, um trabalho travado no Sidekiq ou um filtro por usuário. Seguindo os passos deste artigo, você pode identificar e remover o fator de bloqueio. Após limpar o erro, você pode verificar a página Administração > Federação > Instâncias para ver a quais servidores remotos sua instância está conectada no momento. Como dica avançada, você pode usar o endpoint da API do Mastodon /api/v1/timelines/public com o parâmetro local=false para testar a linha do tempo federada diretamente da linha de comando usando curl.