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-08-07] Expense - Rate field is disabled when account has only non-default workspaces #91874
Version Number: 9.3.84-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:#84382 Email or phone of affected tester (no customers):soidjnosnjdoijsioj@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:
Precondition:
Create two workspaces.
Make personal policy as default policy on OD.
Go to staging.new.expensify.com
Go to self DM.
Create a distance expense.
Open the expense.
Click Rate field.
→ Workspace selector opens.
Close the RHP.
Click More > Split.
Click on any split.
Click Rate field.
Expected Result:
Rate field on split details page will open workspace selector.
Actual Result:
Rate field on split details page is disabled when account has only non-default workspaces.
👋 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:
Identify the pull request that introduced this issue and revert it.
After splitting a distance track expense in self-DM, the split child transactions lose their "track expense" status — the parent report action type becomes CREATE instead of TRACK. The Rate field's interactivity is gated by canEditDistanceOrRate:
For split children in self-DM: isTrackExpense is false (action type is CREATE, not TRACK), isP2PDistanceRequest is false, and policy resolves to undefined because usePolicyForMovingExpenses returns undefined when the user has multiple workspaces and the active policy is a personal policy (filtered out by activePolicySelector). All three conditions fail → canEditDistanceOrRate = false → Rate field is disabled.
Additionally, even if the field were interactive, the workspace selector fallback at line 783-796 only triggers for track expenses (if (isTrackExpense)), so split children would not navigate to the workspace selector.
What changes do you think we should make in order to solve the problem?
In MoneyRequestView.tsx, extend the canEditDistanceOrRate condition to also allow editing when the expense is unreported (which split children in self-DM are):
Then extend the workspace selector fallback in the Rate field's onPress handler (currently gated by if (isTrackExpense) at line 770) to also apply when the expense is unreported, so the user gets navigated to the workspace selector when no policy is resolved.
What alternative solutions did you explore? (Optional)
An alternative would be to mark split children of track expenses as track expenses themselves, but that would have broader implications across the codebase since isTrackExpense is used in many places with specific semantics.
Next Steps for Contributor+ team: Reply with @MelvinBot implement this to create a draft PR, @MelvinBot <your feedback> to refine this analysis, or explain why you are rejecting Melvin's proposal.
changed the title [-]Expense - Rate field is disabled when account has only non-default workspaces[/-][+][Due for payment 2026-08-07] Expense - Rate field is disabled when account has only non-default workspaces[/+]on Jul 31, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.46-10 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-08-07. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
Activity
applause-bot commentedon May 27, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/8bf658d89601514a227ff7c47599dbcef9733f9e1cd9cf85c0409fd7f52d062e
melvin-bot commentedon May 27, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #84382
melvin-bot commentedon May 27, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon May 27, 2026
👋 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:
MelvinBot commentedon May 27, 2026
Proposal
What is the root cause of that problem?
After splitting a distance track expense in self-DM, the split child transactions lose their "track expense" status — the parent report action type becomes
CREATEinstead ofTRACK. The Rate field's interactivity is gated bycanEditDistanceOrRate:For split children in self-DM:
isTrackExpenseisfalse(action type is CREATE, not TRACK),isP2PDistanceRequestisfalse, andpolicyresolves toundefinedbecauseusePolicyForMovingExpensesreturnsundefinedwhen the user has multiple workspaces and the active policy is a personal policy (filtered out byactivePolicySelector). All three conditions fail →canEditDistanceOrRate = false→ Rate field is disabled.Additionally, even if the field were interactive, the workspace selector fallback at line 783-796 only triggers for track expenses (
if (isTrackExpense)), so split children would not navigate to the workspace selector.What changes do you think we should make in order to solve the problem?
In
MoneyRequestView.tsx, extend thecanEditDistanceOrRatecondition to also allow editing when the expense is unreported (which split children in self-DM are):Then extend the workspace selector fallback in the Rate field's
onPresshandler (currently gated byif (isTrackExpense)at line 770) to also apply when the expense is unreported, so the user gets navigated to the workspace selector when no policy is resolved.What alternative solutions did you explore? (Optional)
An alternative would be to mark split children of track expenses as track expenses themselves, but that would have broader implications across the codebase since
isTrackExpenseis used in many places with specific semantics.Next Steps for Contributor+ team: Reply with
@MelvinBot implement thisto create a draft PR,@MelvinBot <your feedback>to refine this analysis, or explain why you are rejecting Melvin's proposal.29 remaining items
mitarachim commentedon Jul 29, 2026
Deploy Blocker #97403 was identified to be related to the PR #92055 that attempted to fix this issue.
melvin-bot commentedon Jul 30, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
jponikarchuk commentedon Jul 30, 2026
Deploy Blocker #97424 was identified to be related to the PR #92055 that attempted to fix this issue.
melvin-bot commentedon Jul 30, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
lakchote commentedon Jul 30, 2026
Original issue is not reproducible by QA anymore, see https://expensify.slack.com/archives/C09V78U42D8/p1785396519081229?thread_ts=1785394378.160169&cid=C09V78U42D8
mitarachim commentedon Jul 30, 2026
Deploy Blocker #97436 was identified to be related to the PR #92055 that attempted to fix this issue.
melvin-bot commentedon Jul 30, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
[-]Expense - Rate field is disabled when account has only non-default workspaces[/-][+][Due for payment 2026-08-07] Expense - Rate field is disabled when account has only non-default workspaces[/+]melvin-bot commentedon Jul 31, 2026
@ZhenjaHorbach
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.46-10 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-08-07. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
melvin-bot commentedon Aug 19, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.