You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Requires Insights Beta] Android & iOS - Account - Back button on Account page is not responsive after relaunching app #104283
Version Number: 9.5.13-1 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#101339 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: iPhone 17 Pro Max / iOS 27.0.1 App Component: User Settings
Action Performed:
Precondition:
Enable insightsPage beta.
Launch Expensify app.
Go to Account from top right.
Kill and relaunch the app.
Tap app back button on Account page.
Expected Result:
Back button on Account page will be responsive after relaunching app.
Actual Result:
Back button on Account page is not responsive after relaunching app.
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Root cause: After the app relaunches, the tab history holds only Account, so canGoBack() is false. The fallback, Navigation.navigate(ROUTES.HOME, {forceReplace: true}) at InitialSettingsPage.tsx:67-74, turns into a REPLACE aimed at the tab navigator. The tab router doesn't handle REPLACE, so it drops the action and the back button does nothing.
Recommended fix: Fix forward rather than revert. In the canGoBack()-false branch of goBackFromAccount, dispatch a RESET to the tab navigator with index set to Home and history set to Home only. Apply the same fix to navigate(HOME, {forceReplace: true}) in useNativeTabNavigator.ts, which is likely a no-op too. If a fix can't be cherry-picked soon, revert [CP Staging] Fix liquid glass bottom tab bar issues and #101339 together, because #104238 builds on #101339.
Investigation details
Why this PR:
It added goBackFromAccount and wired it to the Account back button. That back button exists only with the Insights beta (getTabWithoutBarItem.ts returns SETTINGS_SPLIT_NAVIGATOR).
It's native-only because the native useIsSettingsDrawnOverTabs (index.native.ts) can return true, but the web version always returns false.
The tab router returns null for REPLACE. Because the action targets that navigator directly, useOnAction doesn't bubble it up, so the action is dropped.
Before a relaunch, opening Account adds a history entry, so goBack() works. That matches the report.
Android hardware back is also broken: the handler at InitialSettingsPage.tsx:76-83 calls the same function and returns true. That consumes the press, so the user can't leave Account.
Why not a plain navigate(HOME): it would fix the dead button but keep Account in the tab history. Back from Home would then reopen Account.
Suggested test: start from a tab state whose history holds only Account, press back, and check that Home is focused.
Possible review rule: don't use Navigation.navigate(..., {forceReplace: true}) to switch tabs from inside the tab navigator, because the tab router ignores REPLACE.
Not verified: I traced this in code only and did not reproduce it on a device.
Labels: Keep DeployBlockerCash, because an App PR caused this.
changed the title [-]Android & iOS - Account - Back button on Account page is not responsive after relaunching app[/-][+][Requires Insights Beta] Android & iOS - Account - Back button on Account page is not responsive after relaunching app[/+]on Oct 19, 2026
Activity
applause-bot commentedon Oct 16, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/e1006f17e78d058b05675e9ba908b066ce2f3d44b1c1e68df55ef5b37a149b73
melvin-bot commentedon Oct 16, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #101339
melvin-bot commentedon Oct 16, 2026
@grgia @ZhenjaHorbach you have been assigned to this deploy blocker because you reviewed the offending PR: #101339
melvin-bot commentedon Oct 16, 2026
@sumo-slonik you have been assigned to this deploy blocker because you authored the offending PR: #101339
melvin-bot commentedon Oct 16, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Oct 16, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
MelvinBot commentedon Oct 16, 2026
Deploy Blocker Analysis
Causing PR (high confidence): Add liquid glass bottom tab bar to iOS, Android and mWeb (
Expensify/App#101339), bysumo-slonik.Root cause: After the app relaunches, the tab history holds only Account, so
canGoBack()is false. The fallback,Navigation.navigate(ROUTES.HOME, {forceReplace: true})at InitialSettingsPage.tsx:67-74, turns into aREPLACEaimed at the tab navigator. The tab router doesn't handleREPLACE, so it drops the action and the back button does nothing.Recommended fix: Fix forward rather than revert. In the
canGoBack()-false branch ofgoBackFromAccount, dispatch aRESETto the tab navigator withindexset to Home andhistoryset to Home only. Apply the same fix tonavigate(HOME, {forceReplace: true})inuseNativeTabNavigator.ts, which is likely a no-op too. If a fix can't be cherry-picked soon, revert [CP Staging] Fix liquid glass bottom tab bar issues and #101339 together, because #104238 builds on #101339.Investigation details
Why this PR:
goBackFromAccountand wired it to the Account back button. That back button exists only with the Insights beta (getTabWithoutBarItem.tsreturnsSETTINGS_SPLIT_NAVIGATOR).useIsSettingsDrawnOverTabs(index.native.ts) can return true, but the web version always returnsfalse.Mechanism:
/settingsis restored (NavigationRoot.tsx:176-184). The tab navigator usesbackBehavior="fullHistory"(TabNavigator.native.tsx:52), but the rebuilt state has nohistorybeyond the Account tab.navigation.canGoBack()returns false (InitialSettingsPage.tsx:68), so the fallback runs.linkToconverts the action toREPLACE(linkTo/index.ts:223-225).getMinimalActionthen retargets it to the tab navigator (getMinimalAction.ts:50-73).nullforREPLACE. Because the action targets that navigator directly,useOnActiondoesn't bubble it up, so the action is dropped.Before a relaunch, opening Account adds a history entry, so
goBack()works. That matches the report.Android hardware back is also broken: the handler at InitialSettingsPage.tsx:76-83 calls the same function and returns
true. That consumes the press, so the user can't leave Account.Why not a plain
navigate(HOME): it would fix the dead button but keep Account in the tab history. Back from Home would then reopen Account.Suggested test: start from a tab state whose history holds only Account, press back, and check that Home is focused.
Possible review rule: don't use
Navigation.navigate(..., {forceReplace: true})to switch tabs from inside the tab navigator, because the tab router ignoresREPLACE.Not verified: I traced this in code only and did not reproduce it on a device.
Labels: Keep
DeployBlockerCash, because an App PR caused this.view run
ZhenjaHorbach commentedon Oct 16, 2026
To reproduce, need beta feature
Can be demoted
melvin-bot commentedon Oct 17, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
grgia commentedon Oct 19, 2026
Demoting as above
[-]Android & iOS - Account - Back button on Account page is not responsive after relaunching app[/-][+][Requires Insights Beta] Android & iOS - Account - Back button on Account page is not responsive after relaunching app[/+]