Skip to content

[Requires Insights Beta] Android & iOS - Account - Back button on Account page is not responsive after relaunching app #104283

Open

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


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.
  1. Launch Expensify app.
  2. Go to Account from top right.
  3. Kill and relaunch the app.
  4. 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.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7288334_1792172407084.ScreenRecording_10-17-2026_01-37-35_1.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Svetlana Lazutkina
Bug ID: 7288334

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 16, 2026
  2. applause-bot commented on Oct 16, 2026

    @applause-bot
    Author

    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

  3. melvin-bot commented on Oct 16, 2026

    @melvin-bot

    You have been assigned to this deploy blocker because you recently merged this PR: #101339

  4. melvin-bot commented on Oct 16, 2026

    @melvin-bot

    @grgia @ZhenjaHorbach you have been assigned to this deploy blocker because you reviewed the offending PR: #101339

  5. melvin-bot commented on Oct 16, 2026

    @melvin-bot

    @sumo-slonik you have been assigned to this deploy blocker because you authored the offending PR: #101339

  6. melvin-bot commented on Oct 16, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  7. github-actions commented on Oct 16, 2026

    @github-actions
    Contributor

    👋 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:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  8. MelvinBot commented on Oct 16, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR (high confidence): Add liquid glass bottom tab bar to iOS, Android and mWeb (Expensify/App#101339), by sumo-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 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.
    • No other PR in the deploy checklist touches this code. [CP Staging] Fix liquid glass bottom tab bar issues #104238 only changes tab-bar patches and tests.

    Mechanism:

    1. On relaunch, /settings is restored (NavigationRoot.tsx:176-184). The tab navigator uses backBehavior="fullHistory" (TabNavigator.native.tsx:52), but the rebuilt state has no history beyond the Account tab.
    2. navigation.canGoBack() returns false (InitialSettingsPage.tsx:68), so the fallback runs.
    3. linkTo converts the action to REPLACE (linkTo/index.ts:223-225). getMinimalAction then retargets it to the tab navigator (getMinimalAction.ts:50-73).
    4. 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.


    view run

  9. ZhenjaHorbach commented on Oct 16, 2026

    @ZhenjaHorbach
    Contributor

    To reproduce, need beta feature
    Can be demoted

  10. melvin-bot commented on Oct 17, 2026

    @melvin-bot

    ⚠️ Looks like this issue was linked to a Deploy Blocker here

    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.

  11. grgia commented on Oct 19, 2026

    @grgia
    Contributor

    Demoting as above

  12. added and removed
    DeployBlockerCashThis issue or pull request should block deployment
    on Oct 19, 2026
  13. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.EngineeringReviewingHas a PR in reviewWeeklyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions