Repository navigation
[Due for payment 2026-07-03] [Due for payment 2026-07-02] After selecting group, total spend currency resets to default, currency button disappears #94512
Description
Activity
- addedDeployBlockerCashThis issue or pull request should block deploymentThis issue or pull request should block deploymentBugSomething is broken. Auto assigns a BugZero manager.Something is broken. Auto assigns a BugZero manager.
on Jun 24, 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/96a12116ccd911f81f752048644262a6862c75115ff67dc92bbd1f3c7b627eecYou have been assigned to this deploy blocker because you recently merged this PR: #90777
💬 A slack conversation has been started in #expensify-open-source
github-actions commented
on Jun 24, 2026 on Jun 24, 2026 – with GitHub ActionsContributorMore actions👋 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.
- Find someone who can quickly fix the issue.
- Fix the issue yourself.
Proposal
Please re-state the problem that we are trying to solve in this issue.
After picking a custom "Total spend" currency (e.g. AUD) in the Search footer and then selecting an expense group via checkbox, the total reverts to the default currency and the currency dropdown button disappears.
What is the root cause of that problem?
The footer currency is held only in local component state in
SearchSelectionFooter(not Onyx, not the search query). Selecting a group flipshasSelectedGrouptotrue, which triggers two intentional code paths added in #90777:-
The currency is wiped during render.
shouldResetCustomCurrencyForGroupSelection = hasSelectedGroup && !!selectedCurrencyis true, so the render-phasesetFooterCurrencyState(...)resetsselectedCurrencytoundefined. The total then falls back to the default currency. -
The dropdown is hidden.
shouldAllowFooterCurrencyChangereturnsfalseimmediately when a group is selected. WithshouldAllowCurrencyChange=false,SearchPageFooterrenders a plain<Text>total instead of theFilterPopupButton— so the button vanishes.
The underlying technical reason: currency-converted totals come from an auxiliary "flat" snapshot built without group-by (
buildFlatQueryWithoutGroupBy), so group rows have no converted amount and can't be shown in the selected currency client-side. The current code handles that by silently zeroing the selection and removing the control.What changes do you think we should make in order to solve the problem?
The behavior is by design, but the UX is poor: the user's choice is silently dropped and the control disappears with no explanation. Minimal fix to match the expected result:
- Stop discarding the user's currency. Remove the group branch from the reset so
selectedCurrencyis preserved in state while a group is selected (dropshouldResetCustomCurrencyForGroupSelectionfrom SearchSelectionFooter.tsx:147/157-164). The total can still display in the default currency for group selections via thefooterDatalogic, but deselecting the group then restores the chosen currency instead of losing it. - Decide the dropdown's fate (product call). The reported "expected result" is that the dropdown does not disappear. Either keep the button visible but disabled (clearer than removing it), or leave it hidden — but this needs a Contributor+/design decision since group totals genuinely can't be converted client-side from the current snapshot.
What alternative solutions did you explore?
- Persisting the selected currency in the search query / Onyx so it survives unmount — heavier than needed; the regression is purely the render-phase reset.
- Building a group-aware converted snapshot so group totals can be shown in the target currency — larger feature work, not a deploy-blocker-scoped fix.
Confidence & evidence
High confidence — verified against the checked-out source (HEAD
c0ea139). The reset and dropdown-suppression are explicit, named conditions keyed onhasSelectedGroup. The repro path (select group →group_-prefixed key →hasSelectedGroup=true) is confirmed at SearchSelectionFooter.tsx:113. Introduced by #90777.
Next Steps for Contributor+ team:
To accept:@MelvinBot implement [this](https://github.com/Expensify/App/issues/94512)to create a draft PR.
To refine:@MelvinBot <your feedback>
To reject: Explain why you are rejecting Melvin's proposal.-
⚠️ Looks like this issue was linked to a Deploy Blocker hereIf 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.
Chrome / v9.4.19-3, Xiaomi Redmi Note 10 / Android 12
app 9.4.19-3
No currency selector in footer
Currency in the footer unclickableScreenrecorder-2026-06-25-18-15-18-559.mp4
REC-20260625172450.mp4
- addedDailyKSv2KSv2and removedDeployBlockerCashThis issue or pull request should block deploymentThis issue or pull request should block deploymentHourlyKSv2KSv2
on Jun 25, 2026 - changed the title
[-]After selecting group, total spend currency resets to default, currency button disappears[/-][+][Due for payment 2026-07-02] After selecting group, total spend currency resets to default, currency button disappears[/+]on Jun 25, 2026 Reviewinglabel has been removed, please complete the "BugZero Checklist".The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.19-5 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-07-02. 🎊
@mountiny The PR fixing this issue has been merged! 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]
- changed the title
[-][Due for payment 2026-07-02] After selecting group, total spend currency resets to default, currency button disappears[/-][+][Due for payment 2026-07-03] [Due for payment 2026-07-02] After selecting group, total spend currency resets to default, currency button disappears[/+]on Jun 26, 2026 The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.20-1 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-07-03. 🎊
@mountiny The PR fixing this issue has been merged! 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]
- addedReviewingHas a PR in reviewHas a PR in reviewWeeklyKSv2KSv2and removedDailyKSv2KSv2
on Jul 22, 2026
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 9.4.19-1
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: #90777
Email or phone of affected tester (no customers): sdjnoisdjdosijsonssjo@gmail.com
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Mac 26.5 / Chrome
App Component: Search
Action Performed:
Expected Result:
After selecting expense group, total spend currency will not change.
Currency dropdown button will not disappear.
Actual Result:
After selecting expense group, total spend currency changes to default currency.
Currency dropdown button disappears.
Workaround:
Unknown
Platforms:
Screenshots/Videos
Bug7190157_1782331563365.6.mp4
View all open jobs on GitHub