Skip to content

[Due for payment 2026-10-22] [$175] Allow changing the workspace on the confirmation page when scanning from the camera button #102764

Closed

Description

@melvin-bot

Problem

On mobile, the camera button in the bottom tab bar starts a scan against the active workspace's chat. On the Confirm details page, the workspace row under the header is then locked. Users who belong to more than one workspace can't pick a different one. To choose, they have to go back and use FAB → Create expense → Scan.

Users often don't know about this difference. They expect the camera button to work like the FAB, and they report it as a bug when they can't change the workspace.

Why it happens

This was intentional when the button shipped in #72030 / #72714 (see #72638). The goal was a fast path to the default workspace.

Proposal

Keep the camera button as a fast path that pre-fills the default workspace. Also make the workspace row on the confirmation page tappable, so users can switch to any workspace where they have a workspace chat, the same way they can from the FAB flow.

Domain restrictions must still apply: if isRestrictedToPreferredPolicy is true, the row stays locked.

Expected result

  1. Tap the camera button on mobile and take or upload a receipt.
  2. On Confirm details, the workspace row shows the default workspace.
  3. Tap the row, pick another workspace, and submit. The expense goes to the chosen workspace.

Reported by @garrettmknight via DM with MelvinBot.

Upwork Automation - Do Not Edit
Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. garrettmknight commented on Oct 1, 2026

    @garrettmknight
    Contributor

    @MelvinBot implement this

  2. added
    ExternalAdded to denote the issue can be worked on by a contributor
    on Oct 1, 2026
  3. melvin-bot commented on Oct 1, 2026

    @melvin-bot
    Author

    Triggered auto assignment to Contributor-plus team member for initial proposal review - @nyomanjyotisa (External)

  4. changed the title [-]Allow changing the workspace on the confirmation page when scanning from the camera button[/-] [+][$175] Allow changing the workspace on the confirmation page when scanning from the camera button[/+] on Oct 1, 2026
  5. melvin-bot commented on Oct 1, 2026

    @melvin-bot
    Author
  6. removed
    ExternalAdded to denote the issue can be worked on by a contributor
    on Oct 1, 2026
  7. MelvinBot commented on Oct 1, 2026

    @MelvinBot
    Contributor

    🤖 Draft PR created: Allow changing the workspace on the confirmation page when scanning from the camera button
    Please mark it as "Ready for review" when it is ready for review.

    What changed: The camera button now opens the scan with the draft marked as a global-create expense, set in navigateGlobalCreate after the receipt is captured. The default workspace is still pre-filled, but you can now tap the workspace row and change it, as in the FAB scan flow. Workspaces restricted by isRestrictedToPreferredPolicy stay locked. FAB Quick Actions are not affected.

    Checks: New unit tests, related scan and confirmation tests, lint, typecheck, React Compiler check, and spell check all pass.

    Not done: I couldn't test it in the browser because the test session loaded a blank page. A person needs to test it manually on a mobile device before review.


    view run · no recording available

  8. garrettmknight commented on Oct 1, 2026

    @garrettmknight
    Contributor

    @nyomanjyotisa can you take it from here?

  9. MelvinBot commented on Oct 1, 2026

    @MelvinBot
    Contributor

    🤖 This is already implemented in the open draft PR Allow changing the workspace on the confirmation page when scanning from the camera button, so I didn't create another one.

    It still needs a manual test on a mobile device before review. nyomanjyotisa can take it from there.


    view run

  10. nyomanjyotisa commented on Oct 5, 2026

    @nyomanjyotisa
    Member

    @garrettmknight I saw #102768 was closed. Should we still proceed with this change?

  11. garrettmknight commented on Oct 5, 2026

    @garrettmknight
    Contributor

    Yeah, closed the PR so you could open one with Melv and run it.

  12. nyomanjyotisa commented on Oct 6, 2026

    @nyomanjyotisa
    Member

    @MelvinBot please open a replacement for #102768, as Garrett confirmed.

  13. 13 remaining items

  14. nyomanjyotisa commented on Oct 18, 2026

    @nyomanjyotisa
    Member

    Contributor+ Checklist:

    • [Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.

      Link to the comment on the PR: N/A — behavior change; the previous lock was intentional (#72714).
      Link to the comment on the Issue: N/A — no offending regression.

    • [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.

      Link to discussion: N/A — not a critical regression.

    • [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

    Regression Test Proposal

    Precondition:

    • Member of workspaces A and B, with expense chats and A as the default. Use a setup that shows Confirm details after scanning. Also have an account restricted to its preferred workspace.

    Test:

    1. Scan a receipt using the camera button (desktop: floating receipt button). Verify Confirm details shows A and the workspace row is editable.
    2. Choose B and create the expense. Verify it appears in B, not A.
    3. Start another scan. On Confirm details, go offline, choose B, then reconnect. Verify B remains selected.
    4. Repeat steps 1–2 using + > Create expense > Scan. Verify workspace switching still works.
    5. With the restricted account, scan a receipt. Verify the preferred workspace remains selected and its row cannot be changed.

    Do we agree 👍 or 👎

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

    @melvin-bot
    Author

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  17. melvin-bot commented on Oct 21, 2026

    @melvin-bot
    Author

    Payment Summary

    Resolving PRs:

    BugZero Checklist (@mallenexpensify)

    • I have confirmed assignees, roles, and Upwork contracts look correct
    • I have paid out Upwork contracts / manual NewDot requests
    • [BugZero Assignee] I have created a GH issue for creating/updating the regression test once above steps have been agreed upon
  18. mallenexpensify commented on Oct 24, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @nyomanjyotisa due $175 via NewDot

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

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions