Deep link URL patterns are correctly mapped to screens
Why it matters
A deep-link config that points to a screen name that does not exist, or a pattern parameter (:id) that the screen reads under a different key (route.params.productId), causes React Navigation to resolve the link to nothing, pass undefined to the screen, or render with a silently missing id. The user taps a product link and lands on a blank detail page; telemetry shows a navigation success but the screen queries undefined and renders an error state.
Severity rationale
Critical because pattern mismatches turn every deep link into a silent failure that never throws.
Remediation
Align every pattern parameter with the exact key the screen reads from route.params. If the pattern is product/:id, the screen must read route.params.id:
const linking = {
config: { screens: { ProductDetail: 'product/:id' } },
}
function ProductDetailScreen() {
const { id } = useRoute().params as { id: string }
// fetch product by id
}
Grep the codebase for each screen name to confirm exact casing and parameter keys match.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Mobile Navigation & Deep Linking Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-navigation-linking·automated