You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-09-01] Spend – Inline category edit on Spend > Expenses doesn't save on the first attempt #98403
Version Number: (staging, as of 2026-08-12) Reproducible in staging?: Yes Platform: Web
Action Performed:
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.)
Ensure the account has at least one unreported expense on the Spend > Expenses page.
Log in fresh (or copilot into the account).
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.
@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.
[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:
Log in or do "Clear cache & restart"
Go to Spend > Expenses
On any expense, use the inline Category edit to select a category from the list
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.
Activity
exfy-zapier commentedon Aug 12, 2026
This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989
melvin-bot commentedon Aug 12, 2026
Triggered auto assignment to Contributor-plus team member for initial proposal review - @bernhardoj (
External)melvin-bot commentedon Aug 12, 2026
Job added to Upwork: https://www.upwork.com/jobs/~022087464641097783326
IuliiaHerets commentedon Aug 12, 2026
Issue is not reproducible on Windows 11 / Chrome in v9.4.52-9
ad43dcb2cfe87c0c522009a5315f4a07.mp4
mukhrr commentedon Aug 12, 2026
@IuliiaHerets i can reproduce it
98403-before-web.mp4
@bernhardoj I think, on Search surfaces
useOnyxredirects atransaction_<id>read intosnapshot_<hash>, so the row renders from the snapshot, whilegetUpdateMoneyRequestParamsreads the live TRANSACTION collection, which has no entry for that row after a fresh sign-in.transactionis undefined there,dataToIncludeInParamscomes out empty, and the request goes out with onlyreportIDandtransactionID.mountiny commentedon Aug 12, 2026
@mukhrr What are the specifics that allow you to reproduce?
mukhrr commentedon Aug 12, 2026
@mountiny I wiped session credentials manually through browser console
mountiny commentedon Aug 12, 2026
That would not happen for normal user
52 remaining items
melvin-bot commentedon Aug 30, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)mountiny commentedon Aug 30, 2026
🎉 niiiice
melvin-bot commentedon Aug 31, 2026
Payment Summary
Resolving PRs:
Fix inline category edit not saving on the first attempt #99178
Reviewer: @bernhardoj owed $250 via NewDot
Reviewer: @mukhrr owed $250 via NewDot
BugZero Checklist (@mallenexpensify)
bernhardoj commentedon Sep 1, 2026
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/WithoutViewusages, 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:
Note: It's not 100% consistently reproducible because it depends on whether the transaction data is loaded or not from OpenApp.
Test:
Do we agree 👍 or 👎
mallenexpensify commentedon Sep 2, 2026
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.
mallenexpensify commentedon Sep 3, 2026
Payment Summary
Contributor: @mukhrr due $250 via NewDot
Contributor+: @bernhardoj due $250 via NewDot
flaviadefaria commentedon Sep 11, 2026
Approved: @bernhardoj due $250 via NewDot
flaviadefaria commentedon Sep 11, 2026
Approved: @mukhrr owed $250 via NewDot