Relationships
≡ duplicated by #3616#3615 Dev stack serves corrupted gzip under Vite: browsers fail with ERR_CONTENT_DECODING_FAILED
Opened by stack72 · 10/19/2026· Shipped 10/19/2026
Summary
On the docker compose dev stack (deno task dev, Vite), every HTML page fails to load in Chrome with net::ERR_CONTENT_DECODING_FAILED. The response says content-encoding: gzip, but the body is not valid gzip.
Steps
docker compose up -d appon currentmain.- Run
curl -s -D - -o body.bin -H "Accept-Encoding: gzip" http://localhost:8000/u/<any>. - Run
xxd body.bin | head -1.
Actual
The headers are content-encoding: gzip and vary: Accept-Encoding. The body starts 1f ef bf bd 08 …: the gzip magic 1f 8b has had its non-ASCII bytes replaced with U+FFFD (ef bf bd). The compressed bytes appear to be decoded as UTF-8 text somewhere in the Vite dev middleware. gunzip reports "unknown compression format", and curl --compressed exits 61. A second worktree stack shows the same.
Expected
Dev pages load in a browser, as they did before gzip moved into deliverResponse (main.ts / lib/http-compression.ts, swamp-club#3430).
Workaround
Send Accept-Encoding: identity, for example Playwright extraHTTPHeaders. Production deno serve is not known to be affected.
Shipped
Click a lifecycle step above to view its details.