Programmatic navigation resolves to pages
Why it matters
Programmatic navigation to a non-existent route is worse UX than a static link to a non-existent route: the user clicks a button, takes a deliberate action, and ends up on a 404 with no breadcrumb back to where they were. router.push('/admin/users') when no app/admin/users/page.tsx exists is the exact shape of this failure. It breaks post-signup flows, post-payment redirects, and admin dashboards — all critical journeys the audit fixtures test.
Severity rationale
High because a bad router.push during a critical flow strands the user on a 404 mid-journey after they took an action.
Remediation
For each unresolved navigation call, either fix the specifier to point at a real route or create the destination file. In Next.js App Router using useRouter:
import { useRouter } from 'next/navigation'
const router = useRouter()
router.push('/admin/team') // matches app/admin/team/page.tsx
If the destination is genuinely missing, scaffold app/admin/users/page.tsx so the navigation has a target.
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 Hallucinated References 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 ai-slop-hallucinations·automated