Skip to content

[Due for payment 2026-10-12] mweb - Expense - Menu remains openeed after opening expense via growl #102857

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.1-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: #100015
Email or phone of affected tester (no customers): jsoidjndoiniodnsjojd@gmail.com
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. Go to staging.new.expensify.com
  2. Create an expense in workspace chat.
  3. Go to Spend > Expenses.
  4. Long tap on the expense > Select.
  5. Tap dropdown button > Duplicate expense.
  6. Tap on the expense to select it.
  7. Open dropdown menu.
  8. Tap View on Expense added growl.

Expected Result:

Menu will close after opening expense via growl.

Actual Result:

Menu remains openeed after opening expense via growl.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7274970_1790922451083.Screen_Recording_20261002_142509_Chrome.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Julia Ponikarchuk
Bug ID: 7274970

Issue OwnerCurrent Issue Owner: @situchan

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 2, 2026
  2. applause-bot commented on Oct 2, 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/d42aa20ff0327a502f529719f5093438bff96127e8c27dbfb643f96ca5f78dde

  3. melvin-bot commented on Oct 2, 2026

    @melvin-bot

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

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

    @melvin-bot

    @mountiny @situchan you have been assigned to this deploy blocker because you reviewed the offending PR: #100015

  6. melvin-bot commented on Oct 2, 2026

    @melvin-bot

    @mhawryluk you have been assigned to this deploy blocker because you authored the offending PR: #100015

  7. melvin-bot commented on Oct 2, 2026

    @melvin-bot

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

  8. MelvinBot commented on Oct 2, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR (high confidence): Confirm new expenses with a “View” toast instead of scrolling to and highlighting the row v2. Melvin-bot's attribution is correct.

    Root Cause: The PR moved the growl above every popover. Its "View" button then navigates without closing the open bulk-actions menu. So the menu stays open on top of the expense.

    Recommendation: Revert. This bug is cosmetic. But the same PR has caused 6 other open deploy blockers today, so one revert clears them all.

    Investigation details

    The PR changed three things that together make this flow possible:

    1. The growl now sits above every modal and popover. It renders into document.body through a new portal (GrowlNotificationPortal/index.tsx:10). Its z-index went from 2 to 10001, which is above popoverZIndex (10000) (variables.ts:307-309). Before, the menu backdrop covered the growl, so a tap there just closed the menu.
    2. Duplicating on Spend now shows an "Expense added" growl with "View" (Duplicate.ts:1457).
    3. "View" navigates without closing open modals. The handler only dismisses the growl and calls action.onPress() (GrowlNotificationContent.tsx:167-168). That calls Navigation.navigate directly (ExpenseAddedGrowl.tsx:131-153, navigateToCreatedExpense.ts:57-60). The menu left open is the narrow-layout dropdown in SearchBulkActionsButton.tsx:239-261.

    Other PRs ruled out: None of the other 41 PRs in the 9.5.1-1 checklist touch the growl, Popover, Modal, ButtonWithDropdownMenu, or the Spend bulk-actions button.

    Open question: Popover has a listener that should close it on route change (Popover/index.tsx:59-105). It doesn't catch this case, and I couldn't confirm why from code alone. This doesn't change the attribution, since the flow wasn't reachable before the PR.

    Other open blockers from the same PR:

    Fix-forward option: If you prefer not to revert, close open modals before navigating in navigateToExpense (ExpenseAddedGrowl.tsx:152) using close() from src/libs/actions/Modal.ts:

    close(() => navigateToCreatedExpense({threadReportID, transactionID: active.transactionID, iouReportID, reportTransactions}), true, true);

    I found this by reading the code. I did not reproduce it in the app.


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


    view run

  9. m-natarajan commented on Oct 2, 2026

    @m-natarajan

    Xiaomi Redmi Note 10 / Android 12, mWeb 9.5.1-6, passed

    Screenrecorder-2026-10-02-23-11-54-588.mp4
  10. melvin-bot commented on Oct 4, 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. added and removed
    ReviewingHas a PR in review
    on Oct 5, 2026
  12. changed the title [-]mweb - Expense - Menu remains openeed after opening expense via growl[/-] [+][Due for payment 2026-10-12] mweb - Expense - Menu remains openeed after opening expense via growl[/+] on Oct 5, 2026
  13. melvin-bot commented on Oct 5, 2026

    @melvin-bot

    @situchan

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.1-9 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-12. 🎊

    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