
Os quatro significam a mesma coisa ao nível que interessa: a conversa nunca chegou suficientemente longe para ter um resultado. O Chrome tentou abrir uma ligação a um servidor, e a ligação foi recusada, cortada, fechada ou nunca respondida - por isso não há página, não há código de estado e não há nada do site para ler.
É isso que os separa dos erros com que costumam ser comparados. Um 404 ou um
504 significa que um servidor
lhe respondeu, em HTTP, com alguma coisa. Um ERR_CONNECTION_ qualquer significa que a troca falhou
por baixo do HTTP, antes de nada disso poder acontecer. O Chrome inventa estes nomes ele próprio, e
é por isso que não se parecem nada com um código de estado.
Os quatro diferem em como falhou, e essa diferença é a maior parte do diagnóstico.
ERR_CONNECTION_REFUSED
Alguma coisa respondeu, e o que disse foi não.
A máquina naquele endereço está acessível, e recusou ativamente a ligação naquela porta. Não está nada à escuta ali, ou uma firewall está a devolver a ligação de imediato em vez de a descartar em silêncio.
As causas mais comuns, pela ordem por que as deve verificar: o servidor não está a correr; está a
correr numa porta diferente da que está no endereço; está ligado a 127.0.0.1, por isso só aceita
ligações da própria máquina; ou pediu https numa porta que serve http simples.
Se é programador e vê isto contra localhost, é quase sempre uma daquelas quatro e quase nunca o
navegador.
ERR_CONNECTION_TIMED_OUT
Não respondeu nada de todo.
O Chrome enviou pacotes para o escuro e esperou. Esta é a assinatura de algo que descarta o tráfego em silêncio em vez de o recusar: uma firewall configurada para descartar em vez de rejeitar, um endereço que já não leva a lado nenhum, uma VPN a mandar o seu tráfego para um sítio de onde não se chega ao destino.
O sinal é a espera. Uma recusa volta no instante; um tempo esgotado demora tanto quanto durar a paciência do navegador.
ERR_CONNECTION_RESET
A ligação estava aberta, e depois foi morta a meio da frase.
Alguma coisa enviou um reset: o servidor, ou mais frequentemente algo entre si e ele. Proxies empresariais que inspecionam o tráfego, software de segurança na máquina, uma ligação instável, ou um equipamento de rede que decidiu que a ligação não era permitida depois de já ter começado.
É aquele dos quatro com mais probabilidade de ser causado por algo que não é o site. Se acontece numa rede e noutra não, encontrou a resposta sem sequer tocar no site.
ERR_CONNECTION_CLOSED
A mesma forma de um reset, terminada com mais educação: a outra ponta fechou a ligação enquanto o navegador ainda esperava mais.
Na prática aponta para o servidor, ou para algo à frente dele, a desistir a meio caminho: um
processo a reiniciar, um balanceador de carga a largar uma ligação inativa, um desencontro de
protocolo. Nesta família também verá ERR_CONNECTION_ABORTED, que normalmente quer dizer que o
pedido foi cancelado antes de terminar, às vezes pela própria página ao navegar para outro lado.
Quatro perguntas que o localizam em cerca de um minuto
Seja qual for dos quatro que tem, a mesma triagem estreita-o. Faça-as por ordem e pare quando uma responder.
- Outros sites funcionam? Não, e o problema é a sua ligação, não o site.
- Funciona numa janela privada? Sim, e é uma extensão, um cookie ou um recurso em cache mais do que a rede.
- Funciona noutro dispositivo na mesma rede? Sim, e é aquela máquina: o software de segurança dela, as definições de proxy dela, a VPN dela.
- Funciona em dados móveis em vez de wi-fi? Sim, e é aquela rede, que é a explicação habitual para um reset que só uma pessoa está a ver.
Duas destas quatro perguntas eliminam o site por completo, o que vale a pena saber antes de alguém passar uma tarde a ler registos de servidor à procura de uma falha que nunca chegou ao servidor.
Session Replay
Extensão gratuita do Chrome. Um clique na página que se está a portar mal captura a captura de ecrã, a consola e o registo de rede, e devolve-lhe um link para colar no ticket.
Porque é que estes são tão mal reportados
Um erro de ligação não produz nenhum estado HTTP e muitas vezes nada de útil na consola. Ou a página não carrega de todo, ou - muito pior de diagnosticar - carrega bem enquanto um pedido lá dentro falha desta maneira, por isso o site parece partido de uma forma específica e inexplicável.
Esse segundo caso é o que chega como “o botão de guardar não faz nada”. Nenhum erro no ecrã, nenhum texto vermelho, nada que a pessoa lhe possa citar. No painel de rede é evidente e é uma linha: um pedido em estado falhado, sem estado, e um host ao lado.
Qual é o host importa mais do que tudo o resto no relatório. Se os pedidos que falham nomeiam todos o seu próprio domínio, é a sua infraestrutura ou o caminho até ela. Se nomeiam um fornecedor de pagamentos, um serviço de mapas ou um servidor de tipos de letra, a página está a comportar-se corretamente e algo de que depende não está - e quem lê pode ir ver a página de estado desse fornecedor em vez da sua.
O registo de rede num relatório de erro leva exatamente isso, que é a diferença entre esta classe de erro ser reproduzível e ser uma história sobre algo que aconteceu numa terça-feira.
A versão curta
- Refused: alguma coisa disse não, de imediato. Normalmente não há nada à escuta naquela porta.
- Timed out: nada disse nada. Normalmente algo descarta o tráfego em silêncio.
- Reset: a ligação morreu em pleno voo. Normalmente a rede pelo meio, não o site.
- Closed: a outra ponta desligou cedo. Normalmente o servidor ou algo à frente dele.
E nenhum dos quatro é um erro HTTP, e é por isso que não aparece nenhum código de estado ao lado e que o servidor pode não ter registo nenhum da tentativa.