Skip to content

Expense - When reviewing duplicates, expense changes from transaction thread to table view #104653

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.16-0
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: #103703
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: Mac 26.5 / Chrome
App Component: Money Requests

Action Performed:

  1. Go to staging.new.expensify.com
  2. Go to workspace chat.
  3. Create an expense.
  4. Open the report.
  5. Click More > Switch to table view.
  6. Click More > Duplicate report.
  7. Click Review duplicates.
  8. Click on any expense.
    → Expense opens in transaction thread.
  9. Click left/right arrow to open both expenses.
    → Expense now opens in table view.

Expected Result:

When reviewing duplicates, expense will always open in transaction thread view.

Actual Result:

When reviewing duplicates, expense initially opens in transaction thread view, then it changes to table view after navigating via arrows.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7292550_1792614716279.9.mp4

View all open jobs on GitHub

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

Activity

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

  3. melvin-bot commented on Oct 21, 2026

    @melvin-bot

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

  4. github-actions commented on Oct 21, 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 21, 2026

    @melvin-bot

    @Beamanator @mountiny @lakchote @daledah you have been assigned to this deploy blocker because you reviewed the offending PR: #103703

  6. melvin-bot commented on Oct 21, 2026

    @melvin-bot

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

  7. MelvinBot commented on Oct 21, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Investigation

    Causing PR: Reapply "Add a More menu option to switch single-expense reports between expense view and table view" (high confidence, frontend)

    Recommendation: Roll forward with a small fix. Reverting would also fix this, but it would remove the whole feature a second time for an edge case that only happens when table view is on.

    Root cause: The prev/next arrows open a single-expense sibling's parent report instead of its transaction thread (MoneyRequestReportTransactionsNavigation.tsx:271-276). Before this PR, a single-expense report always rendered in expense view, so this looked the same as the thread. This PR makes shouldDisplayReportTableView return true for single-expense reports when the saved view is table (MoneyRequestReportUtils.ts:172-177). Now the arrow lands on a one-row table.

    Fix: In MoneyRequestReportTransactionsNavigation.tsx, skip the single-expense shortcut when NVP_SINGLE_EXPENSE_REPORT_VIEW is table:

    • the isOneTransactionReport check (L274)
    • the matching isSingleExpenseReport check (L363)

    The arrows then fall through to the existing thread logic. Keep "Pay someone" reports opening the report itself, since they have no thread. useSingleExpenseReportView already handles that.

    Investigation details
    1. Clicking an expense in Review duplicates opens its transaction thread (DuplicateTransactionItem.tsx:69-90). With table view on, this PR also stops the thread from redirecting to its parent report (OneTransactionThreadRedirectHandler.tsx:96-97). So the first view is the thread.
    2. Pressing an arrow returns siblingTransaction.reportID for any reported sibling in a single-expense report. In this flow, both duplicates are in their own single-expense reports.
    3. Both report screens pass the new table-view flag in (MoneyRequestReportView.tsx:163, ReportActions.tsx:62).

    Other PRs ruled out: I checked the files of all 58 PRs on the Deploy Checklist. No other PR touches the arrow navigation or the single-expense view logic. The PR above doesn't edit the arrow file either; it broke that file's assumption that single-expense reports always render in expense view.

    Wider impact: The Search and Home "Review expenses" carousels use the same arrow component. They likely flip to table view the same way when stepping onto a single-expense report, so the fix should cover them too.


    view run

  8. m-natarajan commented on Oct 22, 2026

    @m-natarajan

    Chrome / v9.5.16-1
    No Switch to table view option

    bandicam.2026-10-22.16-07-53-401.1.mp4
  9. Beamanator commented on Oct 22, 2026

    @Beamanator
    Contributor

    thanks! closing!

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.DeployBlockerCashThis issue or pull request should block deploymentEngineeringHourlyKSv2ReviewingHas a PR in review

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions