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-03-30] Reports - After creating expense and selecting expense, footer shows $0.00 #85534
Version Number: 9.3.39-0 Reproducible in staging?: Yes Reproducible in production?: No If this was caught during regression testing, add the test name, ID and link from BrowserStack:#84910 Email or phone of affected tester (no customers):sjdoisjoisdjonsnjo@gmail.com Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Mac 26.2 / Chrome App Component: Search
Action Performed:
Go to staging.new.expensify.com
Create a workspace.
Go to Reports > Expenses.
Open FAB > Create expense > Manual.
Create a manual expense.
Select the expense from Step 5 on Reports > Expenses via checkbox.
👋 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.
groupAmount is an optional backend-provided field on transactions (defined at src/types/onyx/Transaction.ts:487) that represents the amount converted to the group/policy currency. It is only returned by the backend when shouldCalculateTotals=true is sent with the search request.
The default "Expenses" search key (CONST.SEARCH.SEARCH_KEYS.EXPENSES) is not included in the eligible search keys in src/hooks/useSearchShouldCalculateTotals.ts:19-33 — only keys like submit, approve, pay, export, etc. are eligible. So for the default Expenses search, shouldCalculateTotals=false, the backend does not populate groupAmount, and groupAmount ?? 0 evaluates to 0 for every selected transaction, resulting in a $0.00 total.
Meanwhile, the always-available amount field on SelectedTransactionInfo (set at src/components/Search/index.tsx:140) is never used by the footer calculation.
Additionally, PR #84910 changed the post-expense-creation navigation from Navigation.dismissModal() (which returns to the user's original search view) to Navigation.revealRouteBeforeDismissingModal(SEARCH_ROOT.getRoute({query})) (which navigates to a new generic search). This may cause the user to land on a search context where this issue is more reliably triggered.
What changes do you think we should make in order to solve the problem?
In src/pages/Search/SearchPage.tsx:121, the footer total calculation should fall back to the amount field when groupAmount is not available:
Note: groupAmount is the currency-converted amount (signed negative for expenses), while amount is the raw transaction amount. The sign handling may need to match — verify that subtracting amount yields the correct positive total, and consider using Math.abs(transaction.amount) or negating it depending on the sign convention.
What alternative solutions did you explore? (Optional)
Add EXPENSES to eligibleSearchKeys in useSearchShouldCalculateTotals.ts — this would cause the backend to always compute groupAmount for default expense searches, but increases backend load for a common search type and may not be desirable.
Revert the navigation change in PR [Metrics] Optimize submit-to-Search navigation performance #84910 to use dismissModal() on wide layout — this would avoid navigating to a fresh search context, but doesn't fix the underlying issue that the footer can't display correct totals when groupAmount is missing.
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 [-]Reports - After creating expense and selecting expense, footer shows $0.00[/-][+][Due for payment 2026-03-30] Reports - After creating expense and selecting expense, footer shows $0.00[/+]on Mar 23, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.3.41-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
@ShridharGoel 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]
Activity
melvin-bot commentedon Mar 17, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #84910
melvin-bot commentedon Mar 17, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Mar 17, 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 Mar 17, 2026
Proposal
Please re-state the problem that we are trying to solve in this issue.
When a user selects an expense via checkbox on the Reports > Expenses search page, the footer shows $0.00 instead of the actual expense amount.
What is the root cause of that problem?
The footer total in
src/pages/Search/SearchPage.tsx:121is calculated usinggroupAmount:groupAmountis an optional backend-provided field on transactions (defined atsrc/types/onyx/Transaction.ts:487) that represents the amount converted to the group/policy currency. It is only returned by the backend whenshouldCalculateTotals=trueis sent with the search request.The default "Expenses" search key (
CONST.SEARCH.SEARCH_KEYS.EXPENSES) is not included in the eligible search keys insrc/hooks/useSearchShouldCalculateTotals.ts:19-33— only keys likesubmit,approve,pay,export, etc. are eligible. So for the default Expenses search,shouldCalculateTotals=false, the backend does not populategroupAmount, andgroupAmount ?? 0evaluates to0for every selected transaction, resulting in a $0.00 total.Meanwhile, the always-available
amountfield onSelectedTransactionInfo(set atsrc/components/Search/index.tsx:140) is never used by the footer calculation.Additionally, PR #84910 changed the post-expense-creation navigation from
Navigation.dismissModal()(which returns to the user's original search view) toNavigation.revealRouteBeforeDismissingModal(SEARCH_ROOT.getRoute({query}))(which navigates to a new generic search). This may cause the user to land on a search context where this issue is more reliably triggered.What changes do you think we should make in order to solve the problem?
In
src/pages/Search/SearchPage.tsx:121, the footer total calculation should fall back to theamountfield whengroupAmountis not available:Note:
groupAmountis the currency-converted amount (signed negative for expenses), whileamountis the raw transaction amount. The sign handling may need to match — verify that subtractingamountyields the correct positive total, and consider usingMath.abs(transaction.amount)or negating it depending on the sign convention.What alternative solutions did you explore? (Optional)
Add
EXPENSEStoeligibleSearchKeysinuseSearchShouldCalculateTotals.ts— this would cause the backend to always computegroupAmountfor default expense searches, but increases backend load for a common search type and may not be desirable.Revert the navigation change in PR [Metrics] Optimize submit-to-Search navigation performance #84910 to use
dismissModal()on wide layout — this would avoid navigating to a fresh search context, but doesn't fix the underlying issue that the footer can't display correct totals whengroupAmountis missing.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.15 remaining items
[-]Reports - After creating expense and selecting expense, footer shows $0.00[/-][+][Due for payment 2026-03-30] Reports - After creating expense and selecting expense, footer shows $0.00[/+]melvin-bot commentedon Mar 23, 2026
Reviewinglabel has been removed, please complete the "BugZero Checklist".melvin-bot commentedon Mar 23, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.3.41-4 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-03-30. 🎊
For reference, here are some details about the assignees on this issue:
melvin-bot commentedon Mar 23, 2026
@ShridharGoel 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]
melvin-bot commentedon Mar 23, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)ShridharGoel commentedon Mar 23, 2026
@mallenexpensify Should we handle this as a separate task when deciding payment of the parent task? Since this was an existing bug.
mallenexpensify commentedon Mar 30, 2026
@ShridharGoel can you rephrase, provide links and more detail? Thx
ShridharGoel commentedon Mar 31, 2026
@mallenexpensify As mentioned in #85534 (comment), this was an existing bug which became prominent after the perf improvements done in #84910
mallenexpensify commentedon Apr 1, 2026
Thanks @ShridharGoel, you reviewed the PR and did test so the standard is $250
Payment Summary
Contributor+: @ShridharGoel due $250 via NewDot
cc @mountiny in case you disagree
JmillsExpensify commentedon Apr 6, 2026
$250 approved for @ShridharGoel