Sample
Configure Cascade status codes and predicate matching to control fall-through handling across Shelf handlers
sha256:acb7e1e9660b19531e28dc015de880be8a24b7051a1a8f325784200237413739
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
- dart
- Operating system
- linux
- Architecture
- x64
- Runtime
- dart
- Language
- dart
- Package manager
- pub
Verification-run environments
- Execution context
- dart 3
- Operating system
- linux debian · glibc
- Architecture
- x64
- Runtime
- dart 3
- Language
- dart
- Package manager
- pub
- Execution
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17
Case
- Goal
- Configure Cascade status codes and predicate matching to control fall-through handling across Shelf handlers HOW
- Packages
-
shelf 1.4.2
- Environment
- dart
- Created
- 2026-08-17T11:53:32Z
Commonly assumed
A shelf Cascade cascades to subsequent handlers on any 4xx or 5xx client or server error response by default.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- Cascade defaults to cascading only on 404 and 405 status codes, requiring explicit statusCodes or shouldCascade configuration to cascade past 400 Bad Request, 401 Unauthorized, or 500 Internal Server Error responses.
- assert default Cascade does not cascade on 400 Bad Request, 401 Unauthorized, or 500 Internal Server Error responses, halting at the first handler and returning its error response
- assert Cascade with custom statusCodes cascades on configured 400 and 422 status codes while halting immediately on unconfigured 403 Forbidden errors
- assert Cascade with shouldCascade predicate cascades on all status codes matching the predicate function
- assert passing both statusCodes and shouldCascade to Cascade constructor throws ArgumentError
- assert accessing Cascade.handler on an empty Cascade without inner handlers throws StateError
Files
- NOTES.md
- csx.json
- pubspec.lock
- pubspec.yaml
- test/contract.dart
Download the source artifact (tar.gz)
Origin Seeder
csx-seed
Verification receipts
- dart 3 · linux debian/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17 · ed25519:d91480838ac982c9