Skip to content

[Due for payment 2026-10-26] Android - Expense - Manual expense page exits without animation #104297

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): [email protected]
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Samsung Galaxy S25 FE / Android 16
App Component: Money Requests

Action Performed:

  1. Launch Expensify app.
  2. Create a workspace.
  3. Open FAB > Create expense > Manual.
  4. Tap app back button.

Expected Result:

Manual expense page will exit with animation.

Actual Result:

Manual expense page exits without animation.
This issue happens in all tabs except Spend tab.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7288273_1792167613518.Screen_Recording_20261017_001558_Expensify.mp4

View all open jobs on GitHub

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

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 17, 2026
  2. applause-bot commented on Oct 17, 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/adb58f937fc85f803854b7b68ec1e01ae779111433312a9887578666fbf3dd7a

  3. melvin-bot commented on Oct 17, 2026

    @melvin-bot

    @grgia recently merged #101339, but they are OOO right now, so I'll auto-assign someone else.

  4. melvin-bot commented on Oct 17, 2026

    @melvin-bot

    Triggered auto assignment to @jasperhuangg (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

  5. github-actions commented on Oct 17, 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.
  6. melvin-bot commented on Oct 17, 2026

    @melvin-bot

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

  7. melvin-bot commented on Oct 17, 2026

    @melvin-bot

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

  8. melvin-bot commented on Oct 17, 2026

    @melvin-bot

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

  9. MelvinBot commented on Oct 17, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR: Add liquid glass bottom tab bar to iOS, Android and mWeb, plus its cherry-pick [CP Staging] Fix liquid glass bottom tab bar issues. Confidence: high on the PR, medium on the exact native mechanism. I traced this from code only and did not reproduce it on an Android device.

    Recommendation: Roll forward with a small fix in IOURequestStartPage.navigateBack. Restore the RHP animation and the original tab while the RHP still covers the tabs, then close the RHP on the next frame. If you prefer to revert, revert both PRs together.

    Why this PR
    Mechanism
    1. When Manual opens, preInsertFullscreenUnderRHP switches tabs under the RHP and sends DISABLE_RHP_ANIMATION (Navigation.ts#L1230-L1273, RightModalNavigator.tsx#L164-L175).
    2. On back, IOURequestStartPage.tsx#L194-L207 does three things in one event:
    3. React batches all three into one native update. Before this PR, the tabs used a JS tab navigator. Now they use the native Android tab bar (TabNavigator.native.tsx#L31). Android takes the close animation from the RHP's last applied setting, which is "none". The native tab switch also runs in the same update.

    Open gap: I could not prove from code why the same batching still animates in production. The native tab bar is the only new piece, so it is the leading explanation. A device test should confirm it.

    Suggested fix
    const hadPreInsert = Navigation.getIsFullscreenPreInsertedUnderRHP();
    Navigation.removePreInsertedFullscreenIfNeeded();
    if (hadPreInsert) {
        requestAnimationFrame(() => Navigation.closeRHPFlow());
    } else {
        Navigation.closeRHPFlow();
    }
    • This keeps the existing order: restore under the RHP, then close it. That avoids the Search flash described in the comment at L201-204.
    • The Android hardware back button uses the same handler, so it gets the fix too.
    • Before merging, test on Android starting from Home, Inbox, Workspaces, and Account. Also guard against a double tap during that frame.

    Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.


    view run

  10. grgia commented on Oct 19, 2026

    @grgia
    Contributor
  11. m-natarajan commented on Oct 19, 2026

    @m-natarajan

    Passed, Xiaomi Redmi Note 10 / Android 12, App 9.5.13-5

    Screenrecorder-2026-10-19-16-12-54-804.mp4
  12. changed the title [-]Android - Expense - Manual expense page exits without animation[/-] [+][Due for payment 2026-10-26] Android - Expense - Manual expense page exits without animation[/+] on Oct 19, 2026
  13. melvin-bot commented on Oct 19, 2026

    @melvin-bot

    @ZhenjaHorbach

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.13-6 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-26. 🎊

    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]

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