ERR_INVALID_CHUNKED_ENCODING significa que a resposta não pôde ser descodificada como uma mensagem chunked completa. O facto de algum conteúdo ter chegado com êxito não prova que o resto da resposta fosse válido.

  1. Guarde os cabeçalhos da resposta e o primeiro erro do descodificador. Determine qual componente o reportou e se a mensagem foi declarada como chunked.
  2. Localize o ponto de paragem. A codificação chunked de HTTP/1.1 exige tamanhos, os dados correspondentes, delimitadores e um bloco final, com trailers quando aplicável. Um fecho precoce da ligação e um tamanho malformado são pistas diferentes.
  3. Compare o mesmo pedido controlado na rota pretendida. Confronte o pedido com os registos do proxy e do servidor a montante. Procure um fecho a montante, uma transformação por um intermediário ou um cancelamento da aplicação nesse ponto.

Não inferir o enquadramento HTTP a partir do tamanho de um buffer TCP. Uma leitura de socket pode conter meio bloco ou vários blocos; uma biblioteca pode depois expor o conteúdo descodificado em buffers diferentes. Um registo JSON tem ainda outro limite. Um proxy pode reenquadrar uma resposta sem preservar os limites originais dos pacotes.

Se as evidências apontarem para uma implementação antiga de Squid, mantenha o número de versão junto dessa conclusão. As recomendações de correções para Squid 2.x não descrevem todas as versões atuais. Preserve a descodificação normal e a validação de certificados durante a comparação: suprimir o erro pode deixar um ficheiro incompleto com o aspeto de um download bem-sucedido.

Artigos relacionados