Skip to content

[Due for payment 2026-09-01] Spend – Inline category edit on Spend > Expenses doesn't save on the first attempt #98403

Closed

Description

@melvin-bot

Version Number: (staging, as of 2026-08-12)
Reproducible in staging?: Yes
Platform: Web

Action Performed:

  1. Use an account that has an active paid workspace set as its default, with categories configured on that workspace. (The default workspace's categories are the options offered on unreported expenses.)
  2. Ensure the account has at least one unreported expense on the Spend > Expenses page.
  3. Log in fresh (or copilot into the account).
  4. On the first, unreported expense, use the inline Category edit to select a category from the default paid workspace's list.

Expected Result:
The selected category saves on the first attempt, just like editing the category anywhere else.

Actual Result:
On the first attempt (immediately after initial login / copilot), the category doesn't save. Selecting the category again succeeds, so the failure is specific to the first attempt after a fresh session.

Notes:

  • The account needs an active paid workspace set as default with categories — those categories are the options presented on the unreported expense.
  • Reproduced by selecting a category from the default group workspace on an unreported expense.
  • Test account: sasha@expensifail.com.
  • Request logs from a repro on 2026-08-12: a29b68392895bb05-LAX

Reported in Slack.

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

Activity

  1. added
    BugSomething is broken. Auto assigns a BugZero manager.
    on Aug 12, 2026
  2. exfy-zapier commented on Aug 12, 2026

    @exfy-zapier

    This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

  3. added
    ExternalAdded to denote the issue can be worked on by a contributor
    on Aug 12, 2026
  4. melvin-bot commented on Aug 12, 2026

    @melvin-bot
    Author

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

  5. melvin-bot commented on Aug 12, 2026

    @melvin-bot
    Author
  6. IuliiaHerets commented on Aug 12, 2026

    @IuliiaHerets

    Issue is not reproducible on Windows 11 / Chrome in v9.4.52-9

    ad43dcb2cfe87c0c522009a5315f4a07.mp4
  7. mukhrr commented on Aug 12, 2026

    @mukhrr
    Contributor

    @IuliiaHerets i can reproduce it

    98403-before-web.mp4

    @bernhardoj I think, on Search surfaces useOnyx redirects a transaction_<id> read into snapshot_<hash>, so the row renders from the snapshot, while getUpdateMoneyRequestParams reads the live TRANSACTION collection, which has no entry for that row after a fresh sign-in. transaction is undefined there, dataToIncludeInParams comes out empty, and the request goes out with only reportID and transactionID.

  8. mountiny commented on Aug 12, 2026

    @mountiny
    Contributor

    @mukhrr What are the specifics that allow you to reproduce?

  9. mukhrr commented on Aug 12, 2026

    @mukhrr
    Contributor

    @mukhrr What are the specifics that allow you to reproduce?

    @mountiny I wiped session credentials manually through browser console

    window.Onyx.clear(['session', 'credentials'])
  10. mountiny commented on Aug 12, 2026

    @mountiny
    Contributor

    That would not happen for normal user

  11. 52 remaining items

  12. melvin-bot commented on Aug 30, 2026

    @melvin-bot
    Author

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  13. mountiny commented on Aug 30, 2026

    @mountiny
    Contributor

    🎉 niiiice

  14. melvin-bot commented on Aug 31, 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
  15. bernhardoj commented on Sep 1, 2026

    @bernhardoj
    Contributor

    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
      Link to the comment on the Issue: N/A

    Not a regression. The root cause exists since the feature was first implemented in #89166. This kind of bug should've been prevented because we already forbid Onyx.connect/WithoutView usages, but somehow that PR still uses it.

    • [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

    • [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.

    Not sure if we need a regression test for this, because the GH issue that adds this inline edit feature is still open, and most likely they will have their own checklist and regression test for the inline edit feature, but I still add the regression test below if we want it.

    Regression Test Proposal

    Precondition:

    • have workspaces with categories
    • have multiple expenses

    Note: It's not 100% consistently reproducible because it depends on whether the transaction data is loaded or not from OpenApp.

    Test:

    1. Log in or do "Clear cache & restart"
    2. Go to Spend > Expenses
    3. On any expense, use the inline Category edit to select a category from the list
    4. Verify the category is updated

    Do we agree 👍 or 👎

  16. mallenexpensify commented on Sep 2, 2026

    @mallenexpensify
    Contributor

    Claude, on behalf of Matt

    Clearing Overdue issues. If I'm late on paying, apologies, I have ~100 issues to pay on Mon/Tues and I'm paying oldest issues first. I should be all caught up tomorrow.

    If anything is time sensitive, ping Matt in Slack or NewDot.

  17. mallenexpensify commented on Sep 3, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor: @mukhrr due $250 via NewDot
    Contributor+: @bernhardoj due $250 via NewDot

  18. flaviadefaria commented on Sep 11, 2026

    @flaviadefaria
    Contributor

    Approved: @bernhardoj due $250 via NewDot

  19. flaviadefaria commented on Sep 11, 2026

    @flaviadefaria
    Contributor

    Approved: @mukhrr owed $250 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 productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributorNeeds ReproductionReproducible steps needed

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions