oauth-callback-not-through-nav
The callback arrives at the app, not at a screen
A login that hands off to the system browser leaves the app running. The screen the user started
from is still on the navigation stack — nothing popped it, because nothing navigated away. When
the browser redirects back, the token arrives at the process, through whatever link mechanism
the platform uses (desktop-deep-link-plumbing covers getting it that far).
The tempting next move is to route it to the screen that needs it, by navigating to that screen with the token as an argument. That pushes a second copy on top of the first. Login then succeeds, the screen runs its "close myself" step, and that pops only the copy — landing the user on an identical login screen with no error and no explanation. It reads as "logged in, but stuck on the login page", and it gets investigated in the browser, in the redirect, in the service's dashboard — anywhere but in the back stack, because nothing failed.
Two rules, and they only work together: