Mastodon ‘Streaming API Disconnected’ no Cliente Web: Como Corrigir
🔍 WiseChecker

Mastodon ‘Streaming API Disconnected’ no Cliente Web: Como Corrigir

Ao usar o cliente web do Mastodon, a mensagem de erro “Streaming API Disconnected” pode aparecer no console do navegador ou como uma notificação visível. Esse erro significa que a conexão em tempo real entre seu navegador e o servidor Mastodon foi perdida. A API de streaming é responsável por entregar novas postagens, notificações e atualizações da timeline sem exigir uma atualização de página. Uma desconexão faz com que a timeline pare de ser atualizada em tempo real até que a conexão seja restabelecida. Este artigo explica a causa raiz da desconexão e fornece correções passo a passo para restaurar a conexão da API de streaming.

Principais Conclusões: Restaure as Atualizações da Timeline em Tempo Real

  • Console do desenvolvedor do navegador (F12) > guia Network: Identifique se as conexões WebSocket estão falhando ou sendo fechadas pelo servidor.
  • Página de status da instância Mastodon: Verifique se o servidor de streaming está online e aceitando conexões.
  • Configurações de extensões do navegador: Desative bloqueadores de anúncios ou extensões de VPN que possam bloquear o tráfego WebSocket para o domínio da instância.

Por que a API de Streaming Desconecta no Cliente Web do Mastodon

O cliente web do Mastodon se comunica com o servidor usando dois canais principais: requisições HTTP para ações como postar e carregar páginas, e conexões WebSocket para a API de streaming. A API de streaming usa WebSockets para enviar novos dados ao navegador em tempo real. Quando a conexão WebSocket é interrompida, o cliente exibe “Streaming API Disconnected.” Isso pode acontecer por vários motivos.

Timeouts do Servidor e Limites de Recursos

A maioria das instâncias Mastodon define um tempo limite para conexões WebSocket ociosas. Se nenhum dado for enviado por um período, geralmente de 30 a 60 segundos, o servidor fecha a conexão para liberar recursos. Algumas instâncias também limitam o número de conexões WebSocket simultâneas por usuário. Se você tiver várias abas abertas, cada uma cria um WebSocket separado, o que pode exceder o limite.

Interrupções de Rede e Interferência de Proxy

Conexões WebSocket exigem uma conexão TCP persistente. Qualquer interrupção de rede, como queda de Wi-Fi, reconexão de VPN ou timeout de servidor proxy, quebrará o WebSocket. Extensões de navegador que bloqueiam ou modificam o tráfego, particularmente bloqueadores de anúncios, extensões de VPN e bloqueadores de scripts, podem interferir no handshake WebSocket ou nos pacotes keep-alive.

Problemas Específicos do Navegador

Alguns navegadores, especialmente versões antigas, têm bugs na implementação WebSocket. Modos agressivos de economia de energia em laptops também podem suspender a execução do JavaScript, fazendo com que o WebSocket expire. O cliente web do Mastodon depende do JavaScript para manter a conexão WebSocket; se o navegador suspender a aba, a conexão cai.

Passos para Corrigir o Erro Streaming API Disconnected

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

  1. Atualize a aba do Mastodon
    Pressione Ctrl+R ou F5 no Windows, ou Cmd+R no Mac. Isso força o navegador a restabelecer a conexão WebSocket. Se o erro foi temporário, isso pode resolvê-lo imediatamente.
  2. Feche outras abas do Mastodon
    Cada aba aberta do Mastodon cria uma conexão WebSocket separada. Feche todas as abas, exceto uma. Aguarde 10 segundos e verifique se o erro desaparece.
  3. Desative extensões do navegador temporariamente
    Abra o gerenciador de extensões do navegador. Desative todas as extensões, especialmente bloqueadores de anúncios, ferramentas de privacidade e extensões de VPN. Reinicie o navegador e abra o Mastodon novamente. Se o erro parar, reative as extensões uma a uma para encontrar a culpada.
  4. Verifique o status da instância Mastodon
    Visite a página de status da sua instância. Muitas instâncias têm um subdomínio de status como status.mastodon.social. Procure pelo status do servidor de streaming. Se estiver offline ou degradado, aguarde até que o administrador resolva o problema.
  5. Limpe o cache e os cookies do navegador para o domínio da instância
    Vá para Configurações do navegador > Privacidade e segurança > Limpar dados de navegação. Selecione “Cookies e outros dados do site” e “Imagens e arquivos em cache.” Defina o intervalo de tempo como “Últimas 24 horas.” Limpe os dados e recarregue o Mastodon.
  6. Use um navegador diferente
    Teste o Mastodon em um navegador que você não usa normalmente, como Firefox se você usa Chrome, ou Edge se você usa Firefox. Se o erro não aparecer, o navegador original pode ter um bug WebSocket ou conflito de extensão.
  7. Desative VPN ou proxy temporariamente
    Desligue qualquer serviço de VPN ou proxy do sistema. Conexões WebSocket frequentemente falham através de VPNs devido a restrições de porta ou modelagem de tráfego. Após desativar, atualize a aba do Mastodon.
  8. Ajuste as configurações de economia de energia do navegador
    No Windows 11 ou Windows 10, vá para Configurações > Sistema > Energia e bateria. Defina o modo de energia como “Melhor desempenho.” No navegador, desative qualquer opção que suspenda abas em segundo plano. Para Chrome, vá para chrome://settings/performance e desative “Economia de memória” e “Economia de energia.”
  9. Use o aplicativo móvel do Mastodon ou um cliente de terceiros
    Se o cliente web continuar desconectando, tente o aplicativo móvel oficial do Mastodon ou um cliente desktop como Tusky ou Elk. Esses clientes lidam com a reconexão WebSocket de forma mais robusta.

Se a API de Streaming Ainda Desconectar Após a Correção Principal

Erro persiste em vários dispositivos na mesma rede

Se o erro ocorrer em diferentes dispositivos conectados ao mesmo Wi-Fi ou LAN, o problema provavelmente é de rede. Verifique se o roteador está bloqueando o tráfego WebSocket. Algumas redes corporativas ou escolares bloqueiam as portas WebSocket 80 e 443. Entre em contato com o administrador da rede. Alternativamente, use um hotspot móvel para testar.

Erro ocorre apenas em uma instância específica

Se você consegue se conectar a outras instâncias Mastodon sem problemas, o problema é específico da instância que você está usando. A instância pode estar sobrecarregada ou ter configurações WebSocket incorretas. Relate o problema ao administrador da instância. Inclua a mensagem de erro exata e o horário em que ocorreu.

Conexão WebSocket mostra 101 Switching Protocols mas depois fecha

Abra o console do desenvolvedor do navegador com F12. Vá para a guia Network e filtre por “WS” ou “WebSocket.” Recarregue a página. Procure pela conexão WebSocket para o domínio da sua instância. Se o status mostrar 101 mas a conexão fechar após alguns segundos, o servidor está ativamente terminando a conexão. Isso pode ser devido a limite de taxa ou expiração do token de autenticação. Saia do Mastodon, limpe os cookies e faça login novamente.

Reconexão Manual vs Reconexão Automática do WebSocket

Item Reconexão Manual Reconexão Automática
Gatilho Usuário atualiza a página ou fecha e reabre a aba Navegador ou cliente tenta reconectar após um atraso
Tempo para restaurar Imediato após a atualização Geralmente de 5 a 30 segundos, dependendo da lógica do cliente
Confiabilidade Alta, mas requer ação do usuário Varia conforme a implementação do cliente; pode falhar se o problema subjacente persistir
Sobrecarga de rede Recarregamento completo da página, maior uso de dados Apenas handshake WebSocket, menor uso de dados
Melhor para Desconexões ocasionais Desconexões frequentes devido a instabilidade de rede

O cliente web do Mastodon tenta a reconexão automática após uma desconexão, mas isso pode falhar se a causa raiz não for resolvida. Se você vir o erro repetidamente, não confie apenas na reconexão automática. Aplique as correções acima para eliminar a causa.

Após seguir estes passos, a conexão da API de streaming deve permanecer estável. Atualize a aba do Mastodon e verifique se novas postagens aparecem na timeline inicial sem recarregamento manual. Se o erro continuar em um navegador, mas não em outro, considere mudar para o navegador que funciona. Para problemas persistentes em todos os navegadores, verifique a página de status da instância e relate o problema ao administrador.