Investigar ERR_INVALID_CHUNKED_ENCODING a través de un proxy
Localice dónde una respuesta queda incompleta o mal formada comparando su estructura, su punto de parada y los registros de la ruta del proxy.
ERR_INVALID_CHUNKED_ENCODING significa que la respuesta no pudo decodificarse como un mensaje chunked completo. Que parte del contenido llegue correctamente no demuestra que el resto de la respuesta fuera válido.
- Conserve las cabeceras de la respuesta y el primer error del decodificador. Determine qué componente lo notificó y si el mensaje se declaró como chunked.
- Localice el punto de parada. La codificación HTTP/1.1 chunked requiere tamaños, los datos correspondientes, delimitadores y un chunk final, con trailers cuando corresponda. Un cierre temprano de la conexión y un tamaño mal formado son pistas distintas.
- Compare la misma petición controlada en la ruta prevista. Haga coincidir la petición con los registros del proxy y del upstream. Busque un cierre del upstream, una transformación intermedia o una cancelación de la aplicación en ese punto.
No infiera la estructura HTTP a partir del tamaño de un búfer TCP. Una sola lectura de socket puede contener medio chunk o varios chunks; una biblioteca puede entonces exponer el contenido decodificado en distintos búferes. Un registro JSON tiene todavía otro límite. Un proxy puede reencuadrar una respuesta sin preservar los límites originales de los paquetes.
Si las pruebas apuntan a una implementación antigua de Squid, conserve su número de versión junto con esa conclusión. Los consejos de parches para Squid 2.x no describen todas las versiones actuales. Mantenga la decodificación normal y la validación de certificados durante la comparación: suprimir el error puede hacer que un archivo incompleto parezca una descarga correcta.