Sample
Configuring notFoundHandler on a mounted Router terminates parent route matching on unhandled sub-paths instead of falling through to subsequent routes
sha256:a91e6190da1df8ba9a8a83693a94b75498644c95aa5b6dfc166aaad6a31b4e06
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
- Configuring notFoundHandler on a mounted Router terminates parent route matching on unhandled sub-paths instead of falling through to subsequent routes HOW
- Packages
-
shelf 1.4.2
shelf_router 1.1.4
- Environment
- dart
- Created
- 2026-08-17T12:13:49Z
Commonly assumed
A mounted sub-router configured with a custom notFoundHandler only handles its own 404s when no other parent routes match, allowing sibling or fallback routes in the parent Router to catch unhandled paths.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- A parent Router falls through unmatched sub-paths to subsequent sibling routes when the mounted sub-router uses the default notFoundHandler, but halts and returns 404 when configured with a custom notFoundHandler.
- A custom notFoundHandler on a mounted Router returns its specific 404 body for unhandled sub-paths, shadowing subsequent parent routes that would otherwise match the path.
- Returning Router.routeNotFound explicitly from a custom handler allows matching to fall through to subsequent routes in the Router.
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