Skip to content

[Due for payment 2026-10-14] Scan - Split details page does not show the new UI when scan expense is split offline #102491

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.4.95-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: #101301
Email or phone of affected tester (no customers): jsdoijnodsdisojo@gmail.com
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. Open 1:1 DM with any user.
  3. Go offline.
  4. Create a split scan expense.
  5. Open the split preview.
  6. Click Show more.
  7. Enter Amount and click Split expense.
  8. Open the split preview.
  9. Click Show more.
  10. Go online.

Expected Result:

In Step 9, split details page will show the new UI when scan expense is split offline.

Actual Result:

In Step 9, split details page does not show the new UI when scan expense is split offline.
In Step 10, after returning online, it shows the new UI.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7272046_1790638352821.10.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Mita Rachim
Bug ID: 7272046

Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. applause-bot commented on Sep 29, 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/d097c36bf2a65187c018c5082c4921defba867e9beabba94740b1a7300b70666

  2. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Sep 29, 2026
  3. melvin-bot commented on Sep 29, 2026

    @melvin-bot

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

  4. melvin-bot commented on Sep 29, 2026

    @melvin-bot

    @puneetlath @ikevin127 you have been assigned to this deploy blocker because you reviewed the offending PR: #101301

  5. melvin-bot commented on Sep 29, 2026

    @melvin-bot

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

  6. melvin-bot commented on Sep 29, 2026

    @melvin-bot

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

  7. github-actions commented on Sep 29, 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 Sep 29, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR: [CFI] Update the Manual create expense form to use dropdown-style rows and a compact add-receipt button

    Root cause: The PR turned on the new dropdown-row layout only for manual, distance, and time footers. The scan footer still uses the old rows. When you split a scan offline, the transaction keeps iouRequestType: scan until the server responds. So the split details page renders the scan layout (old UI). After you go online, the server data has no scan marker, and the page switches to the manual layout (new UI).

    Recommendation: Roll forward or demote rather than revert. The feature is new (not in production), the issue is cosmetic and offline-only, and it fixes itself on reconnect. Reverting a 47-file PR is not worth it.

    Suggested fix: In completeSplitBill's optimistic transaction merge, add iouRequestType: CONST.IOU.REQUEST_TYPE.MANUAL next to receipt: {state: OPEN} (Split.ts#L946-L950). The existing failure data already restores the original transaction. Before landing, confirm nothing else relies on isScanRequest for completed splits.

    Investigation details
    1. Creating the split offline marks the transaction as a scan because it has a receipt: Split.ts#L569.
    2. completeSplitBill sets the receipt state to OPEN but keeps the scan marker: Split.ts#L942-L951.
    3. The completed split details page shows the stored transaction read-only: DynamicSplitBillDetailsPage.tsx#L182-L203.
    4. A scan transaction routes to ScanConfirmationList: MoneyRequestConfirmationList/index.tsx#L38-L39.
    5. shouldUseDropdownRows defaults to false (ExpenseFormLayoutContext.ts#L26). Only footers that call useAddReceiptLayout turn it on (useAddReceiptLayout.tsx#L30): Manual, DistanceManual, DistanceOdometer, and Time. ScanFooter.tsx does not.

    Before this PR, the scan and manual layouts looked the same, so this offline/online mismatch existed but was invisible. Splits created online come back from the server without the scan marker, so they already show the new UI.

    An alternative, narrower fix: in DynamicSplitBillDetailsPage, when the page is read-only, pass the transaction with iouRequestType overridden to manual.


    view run

  9. 24 remaining items

  10. added and removed
    Awaiting PaymentAuto-added when associated PR is deployed to production
    on Oct 16, 2026
  11. ikevin127 commented on Oct 16, 2026

    @ikevin127
    Contributor

    Note

    No payment due here as this was a regression follow-up from the main issue.

  12. added
    Awaiting PaymentAuto-added when associated PR is deployed to production
    and removed on Oct 16, 2026
  13. melvin-bot commented on Oct 16, 2026

    @melvin-bot

    Current assignee @mallenexpensify is eligible for the Awaiting Payment assigner, not assigning anyone new.

  14. added and removed
    Awaiting PaymentAuto-added when associated PR is deployed to production
    on Oct 16, 2026
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.EngineeringWeeklyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions