A valid form request could return corrupted data.
Hono v4.12.28 could corrupt form fields when middleware called formData() before a handler called parseBody(). Three releases were affected before v4.12.31 restored the reported behavior.
The anatomy of a regression
- 01 Project
- 02 Regression & fix
- 03 Early replay
A web framework built on Web Standards.
Hono is an open-source TypeScript web framework that runs across Node.js, Bun, Deno, Cloudflare Workers, and other Web Standards runtimes.
Project repositoryForm parsing could fail or corrupt fields.
parseFormData began reading an arrayBuffer. When formData was already cached, Hono reserialized it with a new multipart boundary, then parsed those bytes using the original request header and its old boundary. The reported path was fixed by reusing the cached formData value.
Middleware formData() → request body cache → handler parseBody() → parsed fields- Compared
- v4.12.27 → v4.12.28
- Affected
- v4.12.28–v4.12.30 · 3 releases
- Public report
- User · 11 days after release
- Fixed
- v4.12.31 · 12 days later

Early found the regression.
“parseBody after formData() corrupts multipart boundary”
Early traced the corruption to a boundary mismatch: cached FormData was reserialized with a new multipart boundary, then parsed using the original request header. The reproduction passed before v4.12.28, failed across v4.12.28 through v4.12.30, and passed again on v4.12.31.
Follow the record.
Independent replay. Not affiliated with Hono.
Explore more Case Files