Skip to content

[Due for payment 2026-10-30] [Requires Insights Beta] 101339 - Android - Account is displayed on bottom and top bar on insightbeta #104274

Closed

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?: No
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): N/A
Issue reported by: Applause Internal Team
Bug source: Pull Request QA execution
Device used: Android 16 / Samsung Galaxy A06
App Component: User Settings

Action Performed:

  1. Open Expensify app
  2. Turn on insightbeta from Account -Troubleshoot - Betta overrides

Expected Result:

Account is only shown on top bar

Actual Result:

Account is shown on both top and bottom bar, when the bottom bar is tapped app flashes Account page then returns to previous page.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Screen_Recording_20261016_213423_Expensify.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Nathan Lemma
Bug ID: 7288173

Issue OwnerCurrent Issue Owner: @ZhenjaHorbach

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/44439e9e99282588366df236086e9313a4dd698fe918e6cd6797fc35535c262e

  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: Add liquid glass bottom tab bar to iOS, Android and mWeb (high confidence). This is a real bug, not the intended design. The PR's own description says Account moves to the top bar under the Insights beta.

    Recommendation: Fix forward, or demote if a relaunch clears it (see below). A revert is costly: the PR is a ~90-file navigation rewrite with [CP Staging] Fix liquid glass bottom tab bar issues already on top. Account still opens from the top-bar avatar.

    Root cause: Turning the beta on swaps which tab is hidden from Insights to Account (getTabWithoutBarItem.ts#L8-L10). The bottom-tabs patch then renders null for Account's native tab (hidden-tab-items.patch#L67-L70). On Android, removing a child from the native tabs host never reaches the tab bar, so Account's item stays.

    Fix options:

    1. On Android, keep the hidden tab mounted and hide only its menu item.
    2. Or remount Tabs.Host when tabWithoutBarItem changes, for example by adding it to the host's key.

    Please check before demoting: Force-close and relaunch with the beta already on.

    • If the bug clears, only a mid-session toggle triggers it, and demoting is reasonable.
    • If it persists, it hits every Insights-beta Android user and should be fixed before deploy.
    Investigation details
    • Why this PR: 9.5.13-1 differs from 9.5.13-0 only by [CP Staging] Fix liquid glass bottom tab bar issues #104238 and version bumps. No other PR in the checklist touches the tab bar, the top bar, or beta logic. [CP Staging] Fix liquid glass bottom tab bar issues #104238 handles duplicate tabs from new route keys, not a tab that becomes hidden.
    • Why the item stays (Android only): Inside react-native 0.86 Fabric, SurfaceMountingManager.removeViewAt checks the child with getChildAt. TabsHostViewManager doesn't override it, and tab screens live inside fragments. Fabric logs "view already removed from parent!" and returns early. TabsContainer.removeTabsScreenAt never runs. iOS removes the tab normally.
    • Why Account shows twice: The top-bar avatar also shows, because isAccountAvatarShown (useNativeTabNavigator.ts#L123) follows the beta.
    • Why tapping flashes Account and bounces back: The tap selects Account natively. JS then navigates to Account, which is now a hidden route. The patch tells native to select the last visible tab instead (hidden-tab-items.patch#L25-L29, #L50-L60).
    • Why it might persist after relaunch: isBetaEnabled returns false while betas load (src/hooks/usePermissions.ts). If the tab bar renders before betas load, the same flip happens on every launch.
    • Not verified: Nobody tested this on a device. The Android native mechanism comes from reading the react-native and react-native-screens source.

    Next Steps: Reply with @MelvinBot <your feedback> to refine this analysis.


    view run

  9. 9 remaining items

  10. changed the title [-]101339 - Android - Account is displayed on bottom and top bar on insightbeta[/-] [+][Requires Insights Beta] 101339 - Android - Account is displayed on bottom and top bar on insightbeta[/+] on Oct 19, 2026
  11. changed the title [-][Requires Insights Beta] 101339 - Android - Account is displayed on bottom and top bar on insightbeta[/-] [+][Due for payment 2026-10-30] [Requires Insights Beta] 101339 - Android - Account is displayed on bottom and top bar on insightbeta[/+] on Oct 23, 2026
  12. melvin-bot commented on Oct 23, 2026

    @melvin-bot

    @ZhenjaHorbach

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.18-1 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

    If no regressions arise, payment will be issued on 2026-10-30. 🎊

    The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]

  13. ZhenjaHorbach commented on Oct 26, 2026

    @ZhenjaHorbach
    Contributor

    @grgia
    I think we can close this!

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.DailyKSv2Engineering

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions