ERR_INVALID_CHUNKED_ENCODING înseamnă că răspunsul nu a putut fi decodat ca mesaj chunked complet. Faptul că o parte din conținut a ajuns cu succes nu dovedește că restul răspunsului a fost valid.

  1. Păstrați antetele răspunsului și prima eroare a decodificatorului. Stabiliți ce componentă a raportat-o și dacă mesajul a fost declarat chunked.
  2. Localizați punctul de oprire. Codificarea chunked HTTP/1.1 necesită dimensiuni, datele corespunzătoare, delimitatori și un bloc final, cu trailers unde se aplică. O închidere prematură a conexiunii și o dimensiune malformată sunt indicii diferite.
  3. Comparați aceeași cerere controlată pe ruta dorită. Potriviți cererea cu jurnalele proxy și ale serverului amonte. Căutați o închidere din amonte, o transformare a unui intermediar sau anularea aplicației în acel punct.

Nu deduceți încadrarea HTTP din dimensiunea unui buffer TCP. O singură citire de socket poate conține jumătate de bloc sau mai multe blocuri; o bibliotecă poate apoi expune conținutul decodat în buffere diferite. O înregistrare JSON are încă o altă limită. Un proxy poate reîncadra răspunsul fără a păstra limitele originale ale pachetelor.

Dacă dovezile indică o implementare Squid veche, păstrați numărul versiunii alături de acea concluzie. Recomandările de patch pentru Squid 2.x nu descriu fiecare versiune actuală. Păstrați decodarea normală și validarea certificatelor în timpul comparației: suprimarea erorii poate lăsa un fișier incomplet să pară o descărcare reușită.

Articole similare