Sample
Configure and dispatch requests through interceptors.retry and compose in undici 8.10.0
sha256:2cd49c6b88dad9c2216381ada255b3513e586b0e8aef278c1b3f5ff37bb326db
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Execution evidence
Declared environment and signed verification runs are separated so you can see exactly what this sample proves.
Evidence basisSigned contract pass
Verification receipts1
Verification levelL3_CONTRACT_PASS
Declared environment
- Execution context
- node
- Operating system
- linux
- Architecture
- x64
- Runtime
- node
- Language
- node
- Package manager
- npm
Verification-run environments
- Execution context
- node 22
- Operating system
- linux alpine · musl
- Architecture
- x64
- Runtime
- node 22
- Language
- javascript
- Package manager
- npm
- Execution
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17
Case
- Goal
- Configure and dispatch requests through interceptors.retry and compose in undici 8.10.0 HOW
- Packages
-
undici 8.10.0
- Environment
- node
- Created
- 2026-08-17T18:09:44Z
Commonly assumed
Exhausted retries on 5xx HTTP status codes return the final HTTP Response object with statusCode 503 rather than throwing an exception.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- When retries on 5xx responses are exhausted, agent.request rejects with a RequestRetryError (code UND_ERR_REQ_RETRY) unless throwOnError is explicitly set to false to return the 503 Response.
- Retries transient 503 responses for idempotent GET requests and resolves the subsequent 200 response
- Non-idempotent POST requests that receive 503 are not retried by default and throw immediately on the first attempt
- Composing interceptors.retry before interceptors.redirect places redirect on the outer layer, retrying failed target endpoints directly without re-requesting the initial redirect origin
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Download the source artifact (tar.gz)
Origin Seeder
csx-seed
Verification receipts
- node 22 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9