Navigation history maintains correct screen order
Why it matters
Calling navigation.reset() or popToTop() outside of logout, onboarding, or deep-link landing flows silently erases the user's breadcrumb trail. The back button then jumps past screens the user expects to return to, breaking the fundamental mobile contract that back equals undo. Users blame the app for "losing their place," and funnels that depend on multi-step flows (checkout, signup) report inflated drop-off because the stack is being rebuilt underneath them.
Severity rationale
Low because history corruption is usually recoverable and impacts navigation feel rather than core functionality.
Remediation
Prefer navigation.navigate() and navigation.push() for forward motion and let React Navigation maintain history automatically. Reserve reset() for intentional stack wipes — auth boundaries, post-onboarding, deep-link landing. In src/screens/LogoutScreen.tsx:
useEffect(() => {
navigation.reset({ index: 0, routes: [{ name: 'Login' }] })
}, [])
Grep the repo for navigation.reset and confirm each call is tied to a flow boundary, not a routine transition.
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