Member-only story
Deep Links, Broken Navigation: Why “It’s Just Routing” Is the Wrong Mental Model
Not a Medium Member? “Read For Free”
A production-grade breakdown of diagnosing and fixing deep link navigation failures in an Android e-commerce app.
It Doesn’t Start With a Stack Trace
It starts with a flurry of high-severity support tickets:
“Tapped the holiday offer link in the push notification — app instantly crashed.”
“Clicked a shared product link from WhatsApp, but the app just dropped me on the Home screen.”
“Pressed system back from a deep-linked product page and got stuck in a loop on the exact same screen.”
To the untrained eye these look like three unrelated bugs — a null pointer, a race condition, a navigation edge case — so teams open three tickets and patch three symptoms: a null check here, a popUpTo there.
That approach fails because it treats deep linking as a routing feature. It isn’t.
Deep linking is a state reconstruction problem, not a routing problem.
In organic navigation, context builds one step at a time — tap Home, filter a Category, land on a Product Detail Page (PDP). Jetpack Navigation’s NavController builds a predictable back…










