[Payment due @thelullabyy] Fix bulk pay bank account scoped to wrong workspace - #99117
Conversation
…ect, not a bare ID isExpenseReport/isIOUReport/isInvoiceReport were called with the bare selectedReportID string, which resolves against the live-only deprecatedAllReports Onyx collection. Use the already-fetched iouReport object instead, and add a snapshot-report fallback param for the next commit to wire up.
SearchBulkActionsButton renders outside SearchScopeProvider, so its useOnyx report read never redirects to the Search snapshot like the per-row Pay button's does. Reports that were never individually opened (and so never populated report_<reportID> live) were misclassified as IOU reports, showing "pay with <workspace>" options across every admin workspace instead of the one scoped business bank account.
|
🚧 luacmartins has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
@thelullabyy Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9bf794d14d
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Same live-Onyx-only gap as iouReport, one hop further: an invoice report's chat report also isn't in live Onyx when only the report was seen via Search, so isIndividualInvoiceRoom(chatReport) misclassified individual invoice rooms as business ones and dropped the personal settle option.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / SafariScreen.Recording.2026-08-25.at.13.32.11.movScreen.Recording.2026-08-25.at.13.37.39.mov |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good for product.
|
@thelullabyy could you please prioritize this review when you're online? |
|
Please give me someone to check further, I'm facing unexpected offline issue on both local and staging... couldn't test the PR now... I'm trying to find the reason |
|
I will update to you today... |
|
@francoisl Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
🎯 @thelullabyy, thanks for reviewing and testing this PR! 🎉 A payment issue will be created for your review once this PR is deployed to production. If payment is not needed (e.g., regression PR review fix etc), react with 👎 to this comment to prevent the payment issue from being created. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 francoisl has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/francoisl in version: 9.4.61-0 🚀
|
|
🤖 No help site changes required. This PR is an internal bug fix with no user-facing behavior change, so nothing under Why no docs update is neededThe change makes
Since help articles document intended product behavior (not bugs), and this PR only corrects a defect in existing behavior, there is nothing to add or change. @luacmartins, no docs PR was created because no help site changes are required. If you believe a help article should be added or updated for this flow, let me know and I'll draft one. |
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.4.61-4 🚀
Bundle Size Analysis (Sentry): |
|
🤖 Payment issue created: #99598 |
Explanation of Change
The bulk action button only loaded report data from live Onyx. When those reports were missing, it failed to provide accurate actions. This PR adds a fallback to the snapshot so we correctly load data.
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/673857
Tests
<workspace>" entry per admin workspace).Offline tests
N/A
QA Steps
Same as tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari