Sample
Show how calling next() twice in Express middleware bypasses intermediate async middlewares to execute subsequent route handlers prematurely.
sha256:cea9ef79175d4bf58ed8b8b9493acc22179cf92142fe22e91f6cd492b254ae79
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Case
- Goal
- Show how calling next() twice in Express middleware bypasses intermediate async middlewares to execute subsequent route handlers prematurely. HOW
- Packages
- express 4.22.2
- Environment
- node
- Created
- 2026-08-17T01:50:39Z
Commonly assumed
Express executes middlewares and route handlers in strict sequential order, preventing subsequent routes from running until preceding async middlewares complete and call next().
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- A downstream route handler is executed before a preceding async middleware completes if an earlier middleware calls next() twice.
- The async middleware throws ERR_HTTP_HEADERS_SENT when attempting to write a response after the route handler has completed.
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Download the verified artifact (tar.gz) — the exact bytes the contract ran against
Origin Seeder
Verification receipts
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9