In Advanced Mode on Android, signing in from a cold auth wall can silently do nothing. The form submits and no request ever reaches the server.
Logcat from a captured run: the wall is visible, the identity check passes, the sign-in submit executes, and then nothing at all. No POST, no session, no visit, 30 seconds of silence. Closing and relaunching within the same session fails the same way.
Cause
The sign-out teardown runs resetAllTabs and its snapshot while the promoted auth-wall modal is still live. That resets the visible wall's Turbo session underneath it, so when the form submits it proposes a visit into a navigator that no longer exists. Same family as the ModalRootGuard work in d421536, and it affects the legacy teardown and the identity teardown alike, since both run the same reset actions.
Reproducing
Order-dependent, which is why it came and went in casual use. It now reproduces deterministically by running a single DocsAdvancedInstrumentedTest method in isolation: the test opens a cold wall, submits, and fails with "Tab bar never appeared."
Running one method at a time is the tightest loop available for the fix, so this wants a focused device pass rather than a blind change. Not a 0.12.0 regression: the same failure was A/B verified against a pre-hardening commit.
In Advanced Mode on Android, signing in from a cold auth wall can silently do nothing. The form submits and no request ever reaches the server.
Logcat from a captured run: the wall is visible, the identity check passes, the sign-in submit executes, and then nothing at all. No POST, no session, no visit, 30 seconds of silence. Closing and relaunching within the same session fails the same way.
Cause
The sign-out teardown runs
resetAllTabsand its snapshot while the promoted auth-wall modal is still live. That resets the visible wall's Turbo session underneath it, so when the form submits it proposes a visit into a navigator that no longer exists. Same family as theModalRootGuardwork in d421536, and it affects the legacy teardown and the identity teardown alike, since both run the same reset actions.Reproducing
Order-dependent, which is why it came and went in casual use. It now reproduces deterministically by running a single
DocsAdvancedInstrumentedTestmethod in isolation: the test opens a cold wall, submits, and fails with "Tab bar never appeared."Running one method at a time is the tightest loop available for the fix, so this wants a focused device pass rather than a blind change. Not a 0.12.0 regression: the same failure was A/B verified against a pre-hardening commit.