Como Corrigir o Erro ERR_SPDY_PROTOCOL_ERROR no Chrome
ERR_SPDY_PROTOCOL_ERROR é um erro de rede do Chrome que ocorre quando o navegador falha ao estabelecer ou manter uma sessão SPDY ou HTTP/2 válida com um servidor web. Manifesta-se como um carregamento de página falhado, normalmente acompanhado pelo ecrã de erro padrão do Chrome, e pode ser desencadeado por ligações de socket obsoletas, dados de cache corrompidos, incompatibilidades TLS/SSL, extensões interferentes ou negociação de protocolo mal configurada no lado do servidor.
O nome do erro faz referência ao SPDY — o protocolo de transporte multiplexado da Google, agora descontinuado, que precedeu o HTTP/2. Embora o Chrome tenha abandonado o suporte nativo ao SPDY após a versão 51, a camada interna de gestão de sockets e sessões ainda utiliza terminologia derivada do SPDY, razão pela qual o código de erro persiste mesmo em ligações modernas HTTP/2 e HTTP/3. Compreender esta distinção é essencial para diagnosticar a causa raiz com precisão.
O Que Causa Realmente o ERR_SPDY_PROTOCOL_ERROR
Antes de aplicar correções às cegas, é útil conhecer os modos de falha precisos por trás deste erro:
- Sessões de socket SPDY/HTTP2 obsoletas em cache no pool de ligações do Chrome que já não correspondem ao estado TLS atual do servidor
- Certificados SSL/TLS expirados ou reemitidos no lado do servidor que invalidam uma sessão existente sem uma reposição limpa do handshake
- Incompatibilidades ALPN (Application-Layer Protocol Negotiation) em que o servidor anuncia suporte HTTP/2 mas o handshake TLS falha a meio da sessão
- Dados de perfil do navegador corrompidos, incluindo cache, cookies ou o ficheiro de estado de rede
- Proxy, VPN ou software de segurança que realiza inspeção TLS e quebra a camada de enquadramento HTTP/2
- Versões desatualizadas do Chrome com erros conhecidos na implementação HTTP/2 ou QUIC
- Má configuração no lado do servidor — por exemplo, uma instância Nginx ou Apache com um módulo
h2com falhas, ou um certificado expirado num nó de extremidade CDN
Correção 1: Limpar Sockets SPDY Diretamente
Esta é a correção mais direcionada e deve ser a sua primeira ação. O Chrome mantém um pool persistente de sessões de socket SPDY/HTTP2. Se uma sessão ficar corrompida — por exemplo, após o reinício de um servidor ou a reemissão de um certificado — o Chrome continuará a reutilizar a sessão com falhas até que seja explicitamente limpa.
- Abra um novo separador do Chrome.
- Navegue para
chrome://net-internals/#sockets - Clique em Flush socket pools.
- Em seguida, navegue para
chrome://net-internals/#dns - Clique em Clear host cache.
- Feche o separador e recarregue a página com falha.
Esta limpeza em dois passos elimina simultaneamente o pool de sessões da camada de transporte e a cache de resolução DNS, o que resolve as duas causas mais comuns no navegador numa única operação.
Por que o URL antigo já não funciona: Muitos guias ainda fazem referência a chrome://net-internals/#events&q=type:SPDY_SESSION%20is:active. O Chrome removeu o separador Events nas versões mais recentes. Utilize #sockets e #dns diretamente.
Correção 2: Limpar Cache e Cookies do Navegador
Respostas HTTP em cache, cookies armazenados e estado HSTS (HTTP Strict Transport Security) obsoleto podem entrar em conflito com a configuração TLS ou de protocolo atual de um servidor.
- Abra o Chrome e prima
Ctrl+Shift+Delete(Windows/Linux) ouCmd+Shift+Delete(macOS). - Defina o Intervalo de tempo para Todo o período.
- Marque Cookies e outros dados de sites e Imagens e ficheiros em cache.
- Clique em Limpar dados.
Para uma abordagem mais cirúrgica — se pretender limpar dados apenas de um domínio específico sem apagar todo o estado do navegador — utilize o seguinte:
- Navegue para
chrome://settings/siteData - Pesquise o domínio afetado.
- Elimine apenas os cookies e o armazenamento desse site.
Adicionalmente, limpe o estado HSTS do domínio em chrome://net-internals/#hsts introduzindo o nome do host em Delete domain security policies. Uma entrada HSTS obsoleta pode forçar o Chrome a seguir um caminho de atualização que entra em conflito com um servidor que alterou a sua configuração TLS.
Correção 3: Atualizar o Google Chrome
As implementações HTTP/2 e QUIC do Chrome recebem patches frequentes. Utilizar uma versão desatualizada pode significar que está a carregar erros conhecidos de tratamento de protocolo que já foram corrigidos.
- Clique no menu de três pontos e aceda a Ajuda > Acerca do Google Chrome.
- O Chrome verificará e transferirá atualizações automaticamente.
- Clique em Reiniciar para aplicar a atualização.
Para verificar a sua versão atual a partir da barra de endereço, navegue para chrome://version/. Compare o número de compilação com o blogue Chrome Releases para confirmar que está no canal estável mais recente.
Correção 4: Desativar VPN, Proxy e Ferramentas de Inspeção TLS
VPNs, proxies corporativos e produtos antivírus que realizam inspeção profunda SSL/TLS (também denominada interceção HTTPS) são uma causa frequente e subdiagnosticada do ERR_SPDY_PROTOCOL_ERROR. Estas ferramentas terminam a ligação TLS no cliente, reencriptam-na com o seu próprio certificado e reencaminham-na para o servidor. Se a implementação HTTP/2 da ferramenta for incompleta ou a sua cadeia de certificados não for de confiança, o Chrome rejeitará a sessão.
Para desativar as definições de proxy no Windows:
- Prima
Win+Ipara abrir as Definições. - Aceda a Rede e Internet > Proxy.
- Defina Detetar definições automaticamente como Ativado e Utilizar um servidor proxy como Desativado.
Para desativar as definições de proxy através da Linha de Comandos:
netsh winhttp reset proxyPara verificar se um proxy está atualmente ativo:
netsh winhttp show proxySe estiver numa rede corporativa, consulte o seu administrador de TI antes de desativar as definições de proxy, pois fazê-lo pode violar a política de rede. Em vez disso, pergunte se a ferramenta de inspeção SSL suporta o modo de passagem HTTP/2.
Correção 5: Repor a Pilha TCP/IP e Limpar a Cache DNS
Entradas corrompidas na pilha TCP/IP ou uma cache DNS comprometida podem causar falhas de ligação que se manifestam como erros de protocolo. Esta correção opera na camada de rede do sistema operativo, abaixo do próprio Chrome.
Abra a Linha de Comandos como Administrador (prima Win+R, escreva cmd, depois prima Ctrl+Shift+Enter) e execute os seguintes comandos em sequência:
netsh int ip reset
netsh winsock reset
ipconfig /flushdns
ipconfig /release
ipconfig /renewReinicie o computador após executar estes comandos. O comando netsh winsock reset é particularmente importante — um catálogo Winsock corrompido pode causar erros de protocolo intermitentes e aparentemente aleatórios que são difíceis de rastrear até à sua origem.
No macOS, o comando equivalente para limpar o DNS é:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderCorreção 6: Desativar ou Isolar Extensões do Navegador
Extensões que intercetam pedidos de rede — bloqueadores de anúncios, ferramentas de privacidade, extensões antivírus, extensões VPN e comutadores de proxy personalizados — podem corromper frames HTTP/2 ou injetar cabeçalhos que violam a especificação HTTP/2, desencadeando um erro de protocolo.
Método de isolamento sistemático:
- Abra
chrome://extensions/ - Desative todas as extensões simultaneamente.
- Recarregue a página com falha.
- Se o erro desaparecer, reative as extensões uma a uma, recarregando a página após cada uma, até identificar a responsável.
Em alternativa, abra o Chrome em modo de Navegação Anónima (Ctrl+Shift+N), que desativa todas as extensões por predefinição (a menos que as tenha explicitamente permitido em modo Anónimo). Se a página carregar corretamente em modo Anónimo, uma extensão é definitivamente a causa.
Correção 7: Reiniciar o Router ou Modem
As tabelas NAT (Network Address Translation) e a inspeção de pacotes com estado em routers domésticos podem manter entradas de sessão TCP obsoletas que impedem novas ligações HTTP/2 de completar o handshake. Um ciclo de energia completo — não apenas um reinício por software — limpa estas tabelas.
- Desligue completamente o router e o modem.
- Aguarde 60 segundos (não 30 — os condensadores precisam de tempo para descarregar completamente e limpar o estado volátil).
- Ligue primeiro o modem, aguarde que sincronize completamente e depois ligue o router.
- Aguarde uma ligação completa antes de testar.
Correção 8: Desativar Temporariamente o Antivírus ou Firewall
O software de segurança com funcionalidades de análise HTTPS ou proteção web funciona de forma semelhante a um proxy de inspeção TLS corporativo. Interceta o handshake TLS, o que pode quebrar a negociação de sessão HTTP/2 se o motor do software de segurança não suportar totalmente a extensão ALPN ou o enquadramento HTTP/2.
Os produtos mais conhecidos por causar este problema incluem o Avast, AVG, Kaspersky e ESET quando os seus módulos de proteção web estão ativos.
- Desative temporariamente a funcionalidade Web Shield ou Análise HTTPS especificamente (não o antivírus completo).
- Teste o URL com falha.
- Se o erro for resolvido, procure uma opção para adicionar o site afetado a uma lista de exclusão de análise HTTPS em vez de desativar a proteção globalmente.
Correção 9: Criar um Novo Perfil do Chrome
Um perfil de utilizador do Chrome corrompido — especificamente a subpasta Network dentro do diretório do perfil — pode causar ERR_SPDY_PROTOCOL_ERROR persistentes que sobrevivem a limpezas de cache e de sockets. O ficheiro de estado de rede do perfil armazena dados HSTS, registos de transparência de certificados e resultados de negociação de protocolo em cache.
Para testar com um perfil novo:
- Navegue para
chrome://settings/ - Desloque-se até Pessoas e clique em Adicionar pessoa (ou Adicionar perfil).
- Crie um perfil de teste mínimo.
- Abra o URL com falha no novo perfil.
Se o URL carregar corretamente no novo perfil, o problema está isolado no estado de rede armazenado do seu perfil original. Pode eliminar manualmente a pasta Network do diretório do seu perfil sem perder marcadores ou palavras-passe:
- Windows:
%LOCALAPPDATA%GoogleChromeUser DataDefaultNetwork - macOS:
~/Library/Application Support/Google/Chrome/Default/Network - Linux:
~/.config/google-chrome/Default/Network
Elimine a pasta Network com o Chrome fechado e depois reinicie-o.
Correção 10: Diagnosticar e Escalar Problemas no Lado do Servidor
Se todas as correções do lado do cliente falharem, o erro tem origem no servidor. As causas comuns do lado do servidor incluem:
- Certificado SSL/TLS expirado ou recentemente reemitido sem reinício do servidor para carregar o novo certificado
- Configuração HTTP/2 com falhas no Nginx (diretiva
http2mal configurada) ou Apache (mod_http2carregado masProtocols h2 http/1.1não definido corretamente) - Má configuração de CDN ou proxy reverso em que o nó de extremidade e o servidor de origem têm definições de protocolo conflituantes
- Incompatibilidade de versão TLS — por exemplo, um servidor configurado para usar apenas TLS 1.3 enquanto um proxy intermediário suporta apenas TLS 1.2
Exemplo de configuração correta HTTP/2 no Nginx:
server {
listen 443 ssl;
http2 on;
ssl_certificate /etc/ssl/certs/your_domain.crt;
ssl_certificate_key /etc/ssl/private/your_domain.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}Nota: No Nginx 1.25.1+, http2 on substitui a sintaxe mais antiga listen 443 ssl http2. Utilizar a sintaxe descontinuada em versões mais recentes pode causar falhas na negociação ALPN.
Exemplo de configuração correta HTTP/2 no Apache:
Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile /etc/ssl/certs/your_domain.crt
SSLCertificateKeyFile /etc/ssl/private/your_domain.keySe gerir a sua própria infraestrutura de servidor, garantir que os seus Certificados SSL são válidos, corretamente encadeados e renovados antes de expirar elimina o gatilho mais comum do lado do servidor para este erro. Os ambientes de alojamento que funcionam em Alojamento VPS devidamente mantido dão-lhe acesso direto aos ficheiros de configuração do servidor, tornando simples aplicar estas correções sem ter de aguardar por um fornecedor de alojamento partilhado.
Para equipas que executam aplicações web em Servidores Dedicados, verificar que mod_http2 ou o módulo HTTP/2 do Nginx está corretamente compilado e ativado deve fazer parte de qualquer lista de verificação pós-implementação.
Ferramentas de Diagnóstico para Identificar a Causa Raiz Mais Rapidamente
Antes de percorrer todas as correções sequencialmente, utilize estas ferramentas para identificar a origem:
| Ferramenta | O Que Diagnostica | Como Aceder |
|---|---|---|
chrome://net-internals/#sockets | Sessões de socket ativas e em pool | Barra de endereço do Chrome |
chrome://net-internals/#dns | Entradas de cache DNS | Barra de endereço do Chrome |
chrome://net-internals/#hsts | Políticas HSTS armazenadas por domínio | Barra de endereço do Chrome |
chrome://net-export/ | Exportação de registo de rede completo para análise aprofundada | Barra de endereço do Chrome |
| SSL Labs Server Test | Configuração TLS/certificado do servidor | ssllabs.com/ssltest |
| Wireshark | Inspeção do handshake TLS ao nível de pacotes | wireshark.org |
curl -v --http2 https://example.com | Negociação HTTP/2 a partir da linha de comandos | Terminal |
O comando curl é particularmente útil para confirmar se o problema é específico do navegador ou abrange todo o servidor:
curl -v --http2 https://your-domain.com 2>&1 | grep -E "ALPN|HTTP|SSL|error"Se curl também falhar na negociação HTTP/2, o problema é definitivamente do lado do servidor. Se curl tiver êxito mas o Chrome falhar, o problema está no estado de sessão do navegador ou numa ferramenta de interceção local.
ERR_SPDY_PROTOCOL_ERROR vs. Erros de Rede Relacionados do Chrome
| Código de Erro | Causa Principal | Primeira Correção a Tentar |
|---|---|---|
ERR_SPDY_PROTOCOL_ERROR | Sessão HTTP/2 obsoleta ou incompatibilidade ALPN | Limpar pools de sockets |
ERR_HTTP2_PROTOCOL_ERROR | Violação de enquadramento HTTP/2 pelo servidor ou proxy | Verificar configuração HTTP/2 do servidor |
ERR_SSL_PROTOCOL_ERROR | Falha no handshake TLS | Verificar validade do certificado |
ERR_CONNECTION_RESET | Ligação TCP interrompida a meio da sessão | Reiniciar router, repor TCP/IP |
ERR_CERT_AUTHORITY_INVALID | Certificado não confiável ou autoassinado | Verificar cadeia de certificados |
ERR_QUIC_PROTOCOL_ERROR | Falha de sessão QUIC/HTTP3 | Desativar QUIC nas flags do Chrome |
Para sites onde o QUIC está a causar instabilidade, pode desativá-lo em chrome://flags/#enable-quic definindo a flag como Disabled. Isto força o Chrome a recuar para HTTP/2 ou HTTP/1.1 baseado em TCP.
Matriz de Decisão Técnica: Qual Correção Aplicar Primeiro
Utilize esta matriz para priorizar a resolução de problemas com base no contexto em que o erro aparece:
| Cenário | Causa Mais Provável | Primeira Ação Recomendada |
|---|---|---|
| Erro apenas num site específico | Sessão de socket obsoleta ou problema do lado do servidor | Limpar pools de sockets e depois testar com curl |
| Erro em vários sites simultaneamente | Rede local ou corrupção do perfil do navegador | Repor TCP/IP, limpar DNS, reiniciar router |
| Erro apenas no Chrome, não noutros navegadores | Conflito de perfil do Chrome ou extensão | Testar em modo Anónimo e depois com novo perfil |
| Erro iniciado após atualização do antivírus | Inspeção TLS a quebrar HTTP/2 | Desativar análise HTTPS no antivírus |
| Erro na rede corporativa/escritório | Proxy ou appliance de inspeção SSL | Consultar TI; solicitar passagem HTTP/2 |
| Erro após renovação do certificado do servidor | Servidor não recarregado após alteração do certificado | Recarregar processo do servidor (nginx -s reload) |
| Erro em VPS ou servidor autogerido | Má configuração do módulo HTTP/2 | Auditar diretivas HTTP/2 do Nginx/Apache |
Se estiver a gerir o seu próprio servidor web e precisar de um painel de controlo para simplificar a gestão de SSL e protocolos, os Painéis de Controlo VPS fornecem interfaces gráficas para instalação de certificados e configuração de servidores web que reduzem o risco de má configuração manual. Para projetos menores em Alojamento Web Partilhado, as definições de protocolo são geridas ao nível da infraestrutura — contacte o suporte se suspeitar de uma má configuração HTTP/2 do lado do servidor.
Lista de Verificação de Ações Antes de Escalar
Percorra esta lista de verificação por ordem. Pare no passo que resolver o erro.
- [ ] Limpar pools de sockets em
chrome://net-internals/#sockets - [ ] Limpar cache de host DNS em
chrome://net-internals/#dns - [ ] Eliminar política HSTS do domínio em
chrome://net-internals/#hsts - [ ] Limpar toda a cache e cookies do navegador (Todo o período)
- [ ] Testar em modo Anónimo para excluir extensões
- [ ] Testar noutro navegador (Firefox, Edge) para excluir problemas específicos do Chrome
- [ ] Desativar temporariamente a análise HTTPS do antivírus
- [ ] Desativar VPN ou proxy
- [ ] Executar
netsh winsock reseteipconfig /flushdnscomo Administrador - [ ] Ciclo de energia do router e modem (descarga completa de 60 segundos)
- [ ] Criar um novo perfil do Chrome e eliminar a pasta
Networkdo perfil antigo - [ ] Executar
curl -v --http2 https://your-domain.compara determinar se o problema é do lado do servidor - [ ] Se for do lado do servidor: auditar validade do certificado SSL, configuração do módulo HTTP/2 e recarregar o processo do servidor
- [ ] Atualizar o Chrome para a versão estável mais recente
FAQ
O que é o ERR_SPDY_PROTOCOL_ERROR e por que ainda aparece se o SPDY está descontinuado?
A pilha de rede interna do Chrome herdou códigos de erro da era SPDY que nunca foram renomeados. O erro agora surge para qualquer falha na camada de sessão HTTP/2 ou QUIC — incluindo falhas de negociação ALPN, handshakes TLS com falhas e entradas de pool de ligações obsoletas — mesmo que o próprio SPDY não seja utilizado desde o Chrome 51.
Por que o erro aparece apenas num site e não noutros?
Isto indica quase sempre uma sessão de socket do Chrome obsoleta específica desse domínio, ou um problema do lado do servidor nesse host em particular — como um certificado recentemente reemitido que invalidou sessões existentes, ou uma configuração HTTP/2 com falhas nesse servidor. Limpar os pools de sockets e testar com curl --http2 confirmará qual é o caso.
O software antivírus pode realmente causar ERR_SPDY_PROTOCOL_ERROR?
Sim. Os produtos de segurança que realizam inspeção HTTPS (Avast, AVG, Kaspersky, ESET e outros) atuam como um proxy TLS man-in-the-middle. Se a sua implementação HTTP/2 for incompleta ou o seu certificado injetado não for de confiança pelo repositório de certificados do Chrome, a sessão HTTP/2 falhará com exatamente este erro. Desativar apenas o componente de análise HTTPS — não o antivírus completo — é a correção direcionada correta.
Como sei se o problema está do meu lado ou do lado do servidor?
Execute curl -v --http2 https://your-domain.com a partir da linha de comandos. Se o curl também falhar na negociação HTTP/2, o servidor está mal configurado. Se o curl tiver êxito mas o Chrome falhar, o problema é local — seja uma sessão do Chrome obsoleta, uma extensão ou uma ferramenta de segurança de interceção.
Este erro afeta o SEO ou o desempenho do site?
Para os utilizadores finais, sim — o erro impede completamente o carregamento da página. Para os proprietários de sites, um ERR_SPDY_PROTOCOL_ERROR persistente causado por uma má configuração HTTP/2 do lado do servidor ou um certificado expirado resultará em tentativas de rastreamento do Googlebot falhadas, o que pode impactar negativamente a cobertura de rastreamento e a indexação. Garantir que o seu certificado SSL é válido e que a sua configuração HTTP/2 está correta é um requisito básico de SEO técnico.
