Skip to content

[Exploratory] Expense-Scan expense from Inbox briefly shows Inbox with growl before redirecting to workspac #102858

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: V9.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): [email protected]
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Redmi note 10s android 13
App Component: Money Requests

Action Performed:

  1. Launch app -onboarding via track business expenses
  2. From inbox , create a scan expense via camera image entering description
  3. Note user directed to workspace chat and growl is shown
  4. Go to workspace settings and create new workspace
  5. Go to inbox
  6. Tap fab - create expense - scan
  7. Select new workspace created and create a scan expense via camera image entering description
  8. Note user directed to inbox briefly with growl displayed before directed to workspace chat

Expected Result:

Scan expense created from inbox must direct to workspace chat and growl must be shown.

Actual Result:

Scan expense created from inbox directed to growl in inbox briefly before directed to workspace chat.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7275004_1790927481630.Screenrecorder-2026-10-02-13-09-16-239.1.mp4

View all open jobs on GitHub

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

Activity

  1. 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/be7a3886c2dce0d46409a687a8a4fb46ef5003abdca0ad4afeefd700d01b61f2

  2. situchan commented on Oct 4, 2026

    @situchan
    Contributor

    cc: @mhawryluk

    Though, this is already happening in production. cc: @MelvinBot to confirm

    The prod's dismissModalWithReport's dismissModal reveals whatever sits under the modal (the Inbox) and only then navigates. The growl just makes the intermediate frame legible.

    dismissModal({
    afterTransition: () => {
    navigate(reportRoute, {afterTransition: options?.afterTransition, forceReplace: options?.forceReplace});
    },
    });

    1. Go to the Inbox tab (no report open, or a different report open).
    2. Create a second workspace so its chat is not the report beneath the modal.
    3. FAB > Create expense > Scan, pick the new workspace, add a receipt and submit.
    4. The Inbox is visible for a frame before the workspace chat appears.
  3. MelvinBot commented on Oct 4, 2026

    @MelvinBot
    Contributor

    Confirmed from code: the intermediate Inbox frame is already in production (9.5.0-5) on narrow layouts. Confirm new expenses with a “View” toast instead of scrolling to and highlighting the row v2 didn't change the navigation. It only added the growl, which makes that frame noticeable.

    Evidence

    The production commit is 285ed64. The submit navigation code is the same there, at the commit just before the PR, and on main (fb04231).

    • Narrow, report loaded but not pre-inserted: dismissNarrowWithReport calls dismissModalWithReport. The RHP closes first and shows the Inbox. The report is pushed only after the close animation.
    • Report not loaded in Onyx (DEFAULT handler): navigateAfterExpenseCreate calls dismissModalAndOpenReportInInboxTab, which then calls dismissModalWithReport. This gives the same Inbox frame on any layout.
    • No frame: the narrow pre-insert path (getSubmitHandler.ts, REPORT_PRE_INSERT) and the wide path for a loaded report (dismissWideToNewReport) insert the report under the RHP before closing it.

    Why it went unnoticed in production: highlightTransactionOnSearchRouteIfNeeded returns early on the Inbox, so nothing appeared during the frame. On main, signalExpenseAddedGrowl fires for every global-create expense. The write is queued on the same close transition, so the growl appears while the Inbox is showing.

    Not confirmed: why the new workspace's chat wasn't pre-inserted in the reporter's run. The reportPreInsert / dismissModal / default label on the submit telemetry span for that session would show which handler fired. I didn't reproduce this live, because the web dev build only runs main.


    view run

  4. mhawryluk commented on Oct 12, 2026

    @mhawryluk
    Member

    @GCyganek will work on this one

  5. GCyganek commented on Oct 13, 2026

    @GCyganek
    Contributor

    @MelvinBot please assign me

  6. MelvinBot commented on Oct 13, 2026

    @MelvinBot
    Contributor

    Done. I assigned you to this issue, GCyganek.


    view run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions