Repository navigation
Deploy Checklist: New Expensify 2026-05-21 #91350
Copy link
Copy link
Closed
Labels
DailyKSv2KSv2StagingDeployCash🔐 LockCashDeploys 🔐Prevent new code from being deployed to stagingPrevent new code from being deployed to staging
Description
Release Version: 9.3.79-4
Compare Changes: production...staging
This release contains changes from the following pull requests:
- [No QA] Create import-via-csv.md #80548
- Remove uneeded calls to approval workflow updates #82811
- Fix carousel auto scroll problem #83925
- Update requestMoney function to remove allTransaction usages #86038
- Remove Onyx.connect() key ONYXKEYS.COLLECTION.REPORT_ACTIONS in src/libs/OptionsListUtils.ts - part 3 #86643
- Fix: Report quick action on Home should not redirect to Inbox #87787
- [Submit] Add paywall gating for restricted features #87833
- fix: report Pay status appear in ND but unpaid and missing payment state in Classic #88438
- Xero - Add Travel Invoicing payable account selector #88602
- Bump Onyx to 3.0.73 #88734
- Replace FullscreenLoadingIndicator with ActivityIndicator in WalletStatementModal #88739
- Use ActivityIndicator instead of FullscreenLoadingIndicator in SetDefaultWorkspacePage #88740
- [No QA] Clarify MCC default category docs location #88771
- [No QA] Fail closed when deploy checklist lock cannot be resolved #88945
- Skip PAY badge in LHN for non-reimbursable-only reports #89219
- Fix expense description save when require #89349
- fix: use live transactions for held-expense approval/pay flows #89387
- Hide total footer when Select All Matching Items is active #89418
- Fix inability to mark expenses as billable #89425
- [Payment due @ChavdaSachin] Onboarding: drop cohort gate now that server generates per-tier welcome #89469
- Update duplicate RHP screen to be more in line with other flows #89587
- [No QA] Update _routes.yml #89730
- refactor: PureReportActionItem, extract inline components #89749
- [Home Page] Update Your Expensify Cards to Your spend to streamline common points of customer confusion #89899
- refactor getMoneyRequestParticipantOptions and handleMoneyRequestStepDistanceNavigation #89939
- Fix/non blocking violations next step #89981
- [Bulk workspace edits] Add Copy Policy Settings select-workspaces page (step 1 of 3) #90079
- Always show expensify code field and hide code only if secretPromoCode #90151
- feat: add date bounds (startDate/endDate) to mileage rate create flow #90153
- [No QA] Tune web modal, dropdown and RHP animations #90212
- Defer room invite action until after navigation transition to prevent iOS crash #90261
- [No QA] Docs updates for E/A#89414 Add workspace expense policy PDF document upload article #90274
- Part 5: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST #90304
- Fix scrolling in expenses More bottom sheet #90314
- Part 4: Remove Onyx.connect() for ONYXKEYS.COLLECTION.REPORT_ACTIONS in shareTrackedExpense path #90317
- Remove redundant Onyx subscriptions when editing IOURequest #90338
- [No QA] Docs updates for E/A#89513 Add Auditor access to Accounting search shortcuts #90397
- refactor createAndOpenSearchTransactionThread to use isSelfTourViewed and hasCompletedGuidedSetupFlow from useOnyx #90404
- [No QA] refactor util functions to use currentUser object #90420
- 83862 tags settings v2 #90453
- Sort report actions by created date to link LHN badge to oldest report #90553
- fix: Account lists for credit card export appear on vendor bills #90593
- perf: Skip thumbnail encode on receipt capture #90670
- [NO QA] feat: Add ExportDownload Onyx foundation and shared export action functions #90706
- [Payment due @daledah] Read emoji reactions keyed by hex first, fallback on name #90711
- Include 5-10 employee companies in onboarding RHP variant check #90752
- fix: Move to Report unavailable on rejected-back-to-Draft expense reports #90763
- Perf web windows fonts improv #90773
- Show descriptive error when adding work email tied to a closed account #90788
- [No QA] Docs updates for E/A#82139 Add receipt upload failure FAQ #90800
- [No QA] Docs updates for E/A#90738 Update NetSuite travel export account label #90811
- [No QA] Docs updates for E/A#89166 Add tag to inline table editing docs #90813
- [No QA] feat: Add TriNet card on WorkspaceHRPage with connect, disconnect, and sync UI #90831
- Migrate WorkspaceMemberRoleSelectionModal to @react-navigation modal screen #90855
- Update
setSplitSharesto pass currentUserAccountID #90873 - Update
resetSplitSharesto pass currentUserAccountID #90874 - Refactor
deleteMoneyRequestto pass transactionThreadReport #90878 - fix: Unexpected error when approver hold expense #90881
- Part 8 - Add delegateAccountID param to buildOptimisticModifiedExpenseReportAction #90899
- Performance useHasEmptyReportsForPolicy #90905
- [NoQA] Add workspace role permission foundation #90906
- fix: crash when searching results on participants step #90918
- Filter bank accounts by currency in pay menus #90921
- Update wallet Assigned Cards copy #90936
- Fix issue: #88939 Expense - Not here page opens when paying with business account after deleting other report #90939
- Add coins icon to currency & globe icon to language picker #90956
- perf: bake overLimitForwardsToDisplayName into workflow shape, drop PERSONAL_DETAILS_LIST from ApprovalWorkflowSection #90958
- Fix partial skeleton loader briefly appears in the report after creating expense #90963
- Migrate Unit selector to navigator-driven RHP (#90467) #90984
- Remove minDate override from bulk-edit date picker #91001
- Certinia/r1 pr2 certinia pages #91004
- Fix back navigation after agent deletion #91015
- [No QA][HR Import] Render per provider cards on hr page #91017
- feat: [90251] prevent owner removing from copilot #91019
- Support CMD+click on search and workspace rows #91021
- [NO QA] Add Travel CR to all integrations #91027
- perf: move mobile-selection branch out of handleLongPressRow #91047
- decompose ReportActionsList: 3 #91048
- Unblock PIN (v2) #91053
- Enable action badges for all environments #91060
- Go back properly when importing personal card via CSV #91064
- [NoQA] [HR Import] ConnectToMergeHRFlow component #91070
- fix: Android - Native crash (SIGSEGV) in JavaTurboModule event emitter callback #91076
- Smooth Concierge draft streaming #91092
- feat: prevent agents from using three more routes #91117
- Optimize github workflows size/speed/cost #91118
- [No QA] Remove New Help site deployment #91119
- [No QA] Add redirect for importing personal card transactions #91130
- [No QA] Add redirect for uploading expense policy document #91135
- Modify plan description and subscription link #91140
- Restore keyboard scrolling in selection lists #91154
- Fix empty report opening after deleting another report with expenses #91156
- Guard report title editing when policy has no title field #91159
- migrate EXPENSIFY_CARD_DETAILS #91161
- [No QA] Remove transactionItem as explicit prop from TransactionListItemNarrow and Wide #91164
- Remove CSV Card Import beta #91176
- [NoQA] Await Onyx.merge in ContactMethodsPageTest to fix flaky test #91185
- perf:hoist totalSelectableItemsCount out of updateSelectAllM… #91186
- perf: drop searchResults.data lookup in toggleTransaction #91187
- [No QA][HR Import] Add MergeHRApprovalModePage #91202
- Add hover-to-zoom on receipt thumbnails (web) #91205
- [No QA] Add unit tests for getOverLimitForwardsToDisplayName #91206
- fix: [91145] redirect agents on restricted page #91239
- Stop scroll jump on workspace invite member selection #91250
- Show View instead of Submit for admins on Spend > Reports #91257
- [Payment due @hungvu193] [No QA] Add inbAdminsWel onboarding variant + send MANAGE_TEAM tasks to server without optimistic flash #91263
- Standardize search bar threshold to STANDARD_LIST_ITEM_LIMIT #91283
- [NoQA] [HR Import] Rename and parameterize the sync results modal #91285
- [No QA][HR Import] Final approver page #91297
- [NO QA][HR Import] Update command names to match Web-E #91299
- Bump expensify-common to 2.0.181 for VictoryChart support #91329
- Use correct border color for bot avatar edit icon #91337
- Use Meta default event names for analytics #91338
- [No QA] Bump Mobile-Expensify submodule to "9.3.78-0" #91341
- [CP Staging] Revert #90918 "fix: crash when searching results on participants step" #91373
- [CP Stg] Revert "Update duplicate RHP screen to be more in line with other flows" #91457
- [CP Stg] Revert "Remove uneeded calls to approval workflow updates" #91459
Internal QA:
- Gracefully handle malformed currency codes instead of crashing #91114 - @mountiny
- [NO QA] Use shared claude-review-toolkit composite action #90324 - @Julesssss
Deploy Blockers:
- [Due for payment 2026-06-01] [Due for payment 2026-05-29] Members - Contact list does not load when scrolled to the bottom of the list #91366
- Expense - Expense RHP opens after selecting expense during review duplicates flow #91367
- [Due for payment 2026-06-18] Review duplicates - Tooltip does not appear when hovering over long merchant and long category #91369
- [Due for payment 2026-08-28] Home - Your spend section does not update after updating expense offline #91370
- Home - Awaiting approval is not shown for approver #91371
- [Due for payment 2026-06-01] [$250] Distance rates - Save button is not at the bottom of RHP on Add rate page #91372
- Expense - The compact duplicate expense cards doesn't display Tags #91374
- Accounting - Inbox opens after refreshing Certinia setup RHP #91376
- [Due for payment 2026-06-01] [Due for payment 2026-05-29] Expense - Keep selected option is shown when one of the duplicate expenses is paid #91377
- [Due for payment 2026-06-01] Workspaces - "Select All" checkbox not aligned with remaining checkboxes on "Copy Settings" #91381
- [Due for payment 2026-06-08] Web - Expense - Currency RHP opens without animation #91382
- Distance rates - Distance rate can be saved with only Start or End date selected #91383
- Onboarding - Onboarding task are not shown when select Manage my team (11-50 employee or more) #91384
- [Due for payment 2026-06-01] Workspace - Workspace deleted offline still visible on "Copy Settings" and can be selected #91389
- [Due for payment 2026-06-12] Home - Awaiting approval section includes IOU expenses #91392
- [Due for payment 2026-06-03] [$250] More Features - Upgrade modal doesn't show up when try to enable restricted feature #91404
- [Due for payment 2026-06-01] [Due for payment 2026-05-29] The second approver is replaced by admin instead of the setting getting removed #91439
- PR90153 - Distance - Error appear on preview when select the rate from the past #91440
Chronologically ordered merged PRs (oldest first)
- feat: prevent agents from using three more routes #91117
- [No QA] Remove New Help site deployment #91119
- Enable action badges for all environments #91060
- [No QA] Create import-via-csv.md #80548
- [No QA] Docs updates for E/A#89414 Add workspace expense policy PDF document upload article #90274
- [No QA] Add redirect for importing personal card transactions #91130
- Update
setSplitSharesto pass currentUserAccountID #90873 - Refactor
deleteMoneyRequestto pass transactionThreadReport #90878 - [No QA] Add redirect for uploading expense policy document #91135
- [NO QA] Use shared claude-review-toolkit composite action #90324
- [No QA] Fail closed when deploy checklist lock cannot be resolved #88945
- [No QA] Docs updates for E/A#89513 Add Auditor access to Accounting search shortcuts #90397
- [No QA] Docs updates for E/A#90738 Update NetSuite travel export account label #90811
- Remove minDate override from bulk-edit date picker #91001
- [Payment due @daledah] Read emoji reactions keyed by hex first, fallback on name #90711
- [No QA] Docs updates for E/A#89166 Add tag to inline table editing docs #90813
- Fix carousel auto scroll problem #83925
- 83862 tags settings v2 #90453
- Always show expensify code field and hide code only if secretPromoCode #90151
- Xero - Add Travel Invoicing payable account selector #88602
- refactor createAndOpenSearchTransactionThread to use isSelfTourViewed and hasCompletedGuidedSetupFlow from useOnyx #90404
- Performance useHasEmptyReportsForPolicy #90905
- decompose ReportActionsList: 3 #91048
- refactor: PureReportActionItem, extract inline components #89749
- [No QA] Docs updates for E/A#82139 Add receipt upload failure FAQ #90800
- [NoQA] Add workspace role permission foundation #90906
- Part 4: Remove Onyx.connect() for ONYXKEYS.COLLECTION.REPORT_ACTIONS in shareTrackedExpense path #90317
- Part 5: Remove Onyx.connect() for the key: ONYXKEYS.PERSONAL_DETAILS_LIST #90304
- fix: use live transactions for held-expense approval/pay flows #89387
- Bump Onyx to 3.0.73 #88734
- [No QA] Clarify MCC default category docs location #88771
- Sort report actions by created date to link LHN badge to oldest report #90553
- [NO QA] feat: Add ExportDownload Onyx foundation and shared export action functions #90706
- Remove Onyx.connect() key ONYXKEYS.COLLECTION.REPORT_ACTIONS in src/libs/OptionsListUtils.ts - part 3 #86643
- Modify plan description and subscription link #91140
- [NoQA] Await Onyx.merge in ContactMethodsPageTest to fix flaky test #91185
- Fix inability to mark expenses as billable #89425
- Go back properly when importing personal card via CSV #91064
- perf: bake overLimitForwardsToDisplayName into workflow shape, drop PERSONAL_DETAILS_LIST from ApprovalWorkflowSection #90958
- fix: Account lists for credit card export appear on vendor bills #90593
- Migrate WorkspaceMemberRoleSelectionModal to @react-navigation modal screen #90855
- [Submit] Add paywall gating for restricted features #87833
- [No QA] Update _routes.yml #89730
- [NO QA] Add Travel CR to all integrations #91027
- [No QA] Remove transactionItem as explicit prop from TransactionListItemNarrow and Wide #91164
- refactor getMoneyRequestParticipantOptions and handleMoneyRequestStepDistanceNavigation #89939
- Fix scrolling in expenses More bottom sheet #90314
- Fix issue: #88939 Expense - Not here page opens when paying with business account after deleting other report #90939
- Part 8 - Add delegateAccountID param to buildOptimisticModifiedExpenseReportAction #90899
- feat: [90251] prevent owner removing from copilot #91019
- [No QA] Add unit tests for getOverLimitForwardsToDisplayName #91206
- Update requestMoney function to remove allTransaction usages #86038
- [No QA] refactor util functions to use currentUser object #90420
- Fix partial skeleton loader briefly appears in the report after creating expense #90963
- Filter bank accounts by currency in pay menus #90921
- Add coins icon to currency & globe icon to language picker #90956
- Fix: Report quick action on Home should not redirect to Inbox #87787
- Fix/non blocking violations next step #89981
- Unblock PIN (v2) #91053
- [Home Page] Update Your Expensify Cards to Your spend to streamline common points of customer confusion #89899
- Guard report title editing when policy has no title field #91159
- fix: Unexpected error when approver hold expense #90881
- Show descriptive error when adding work email tied to a closed account #90788
- [No QA][HR Import] Render per provider cards on hr page #91017
- [NoQA] [HR Import] ConnectToMergeHRFlow component #91070
- Use ActivityIndicator instead of FullscreenLoadingIndicator in SetDefaultWorkspacePage #88740
- Fix expense description save when require #89349
- Replace FullscreenLoadingIndicator with ActivityIndicator in WalletStatementModal #88739
- Skip PAY badge in LHN for non-reimbursable-only reports #89219
- [Payment due @ChavdaSachin] Onboarding: drop cohort gate now that server generates per-tier welcome #89469
- Restore keyboard scrolling in selection lists #91154
- perf: Skip thumbnail encode on receipt capture #90670
- fix: Android - Native crash (SIGSEGV) in JavaTurboModule event emitter callback #91076
- migrate EXPENSIFY_CARD_DETAILS #91161
- Gracefully handle malformed currency codes instead of crashing #91114
- Remove CSV Card Import beta #91176
- Fix back navigation after agent deletion #91015
- Migrate Unit selector to navigator-driven RHP (#90467) #90984
- perf:hoist totalSelectableItemsCount out of updateSelectAllM… #91186
- [NO QA][HR Import] Update command names to match Web-E #91299
- Hide total footer when Select All Matching Items is active #89418
- fix: report Pay status appear in ND but unpaid and missing payment state in Classic #88438
- Fix empty report opening after deleting another report with expenses #91156
- Remove uneeded calls to approval workflow updates #82811
- Update
resetSplitSharesto pass currentUserAccountID #90874 - Support CMD+click on search and workspace rows #91021
- fix: Move to Report unavailable on rejected-back-to-Draft expense reports #90763
- [Payment due @hungvu193] [No QA] Add inbAdminsWel onboarding variant + send MANAGE_TEAM tasks to server without optimistic flash #91263
- Include 5-10 employee companies in onboarding RHP variant check #90752
- Defer room invite action until after navigation transition to prevent iOS crash #90261
- Add hover-to-zoom on receipt thumbnails (web) #91205
- fix: crash when searching results on participants step #90918
- perf: move mobile-selection branch out of handleLongPressRow #91047
- perf: drop searchResults.data lookup in toggleTransaction #91187
- [No QA][HR Import] Final approver page #91297
- Update wallet Assigned Cards copy #90936
- Show View instead of Submit for admins on Spend > Reports #91257
- [No QA][HR Import] Add MergeHRApprovalModePage #91202
- Optimize github workflows size/speed/cost #91118
- [NoQA] [HR Import] Rename and parameterize the sync results modal #91285
- Remove redundant Onyx subscriptions when editing IOURequest #90338
- [No QA] Tune web modal, dropdown and RHP animations #90212
- Use correct border color for bot avatar edit icon #91337
- [No QA] feat: Add TriNet card on WorkspaceHRPage with connect, disconnect, and sync UI #90831
- Standardize search bar threshold to STANDARD_LIST_ITEM_LIMIT #91283
- Smooth Concierge draft streaming #91092
- [Bulk workspace edits] Add Copy Policy Settings select-workspaces page (step 1 of 3) #90079
- Use Meta default event names for analytics #91338
- Perf web windows fonts improv #90773
- Stop scroll jump on workspace invite member selection #91250
- Update duplicate RHP screen to be more in line with other flows #89587
- feat: add date bounds (startDate/endDate) to mileage rate create flow #90153
- [No QA] Bump Mobile-Expensify submodule to "9.3.78-0" #91341
- Mobile-Expensify submodule update to
9.3.78-1— Adhoc Build - fix: [91145] redirect agents on restricted page #91239
- Certinia/r1 pr2 certinia pages #91004
- Bump expensify-common to 2.0.181 for VictoryChart support #91329
- Mobile-Expensify submodule update to
9.3.79-0— Adhoc Build - Mobile-Expensify submodule update to
9.3.79-1— Adhoc Build - [CP Staging] Revert #90918 "fix: crash when searching results on participants step" #91373
- Mobile-Expensify submodule update to
9.3.79-2— a5acb0a - [CP Stg] Revert "Remove uneeded calls to approval workflow updates" #91459
- Mobile-Expensify submodule update to
9.3.79-3— 472d08b - Mobile-Expensify submodule update to
9.3.79-4— 7c68667 - [CP Stg] Revert "Update duplicate RHP screen to be more in line with other flows" #91457
Deployer verifications:
- I checked Sentry for this release version and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found here.
- I checked Sentry for the previous release version and verified that the release did not introduce any new crashes. Because mobile deploys use a phased rollout, completing this checklist will deploy the previous release version to 100% of users. More detailed instructions on this verification can be found here.
- I checked GitHub Status and verified there is no reported incident with Actions.
cc @Expensify/applauseleads
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
DailyKSv2KSv2StagingDeployCash🔐 LockCashDeploys 🔐Prevent new code from being deployed to stagingPrevent new code from being deployed to staging
Activity
youssef-lr commentedon May 21, 2026
Checking off #91338
IuliiaHerets commentedon May 22, 2026
Regression іs completed in BS
PRs Failing:
#82811 failed with #91378
#87833 failed on Native apps with #91404
#89587 failed on Web with #91374
#89749 faced on Android with #83925 (comment)
#90079 faced with #91389
#90261 faced with #91410
#90338 faced with #75653
#90881 failed with #91409
#91257 faced on Web with #91385
PRs Untested:
Several still pending validation: Web 11 | Android 17 | iOS 20
mountiny commentedon May 22, 2026
Tested #91114 and works well
mountiny commentedon May 22, 2026
Checked off bunch of the PRs and deploy blockers, we are left with 2 to confirm
m-natarajan commentedon May 22, 2026
Regression іs completed in BS
PRs Failing:
#82811 failed with #91378
#87833 failed on Native apps with #91404
#89587 failed on Web with #91374
#89749 faced on Android with #83925 (comment)
#90079 faced with #91389
#90153 failed with #91440
#90261 faced with #91410
#90338 faced with #75653
#90881 failed with #91409
#91257 faced on Web with #91385
PRs Untested:
#90752 (comment)
#91048 (comment)
#91053 (comment)
PRs pending validation:
#88739 - iOS
#91187 - iOS
#91239 - iOS
#91283 - iOS
rlinoz commentedon May 22, 2026
Checking off #91440
m-natarajan commentedon May 22, 2026
Regression іs completed in BS
PRs Failing:
#82811 failed with #91378
#87833 failed on Native apps with #91404
#89587 failed on Web with #91374
#89749 faced on Android with #83925 (comment)
#90079 faced with #91389
#90153 failed with #91440
#90261 faced with #91410
#90338 faced with #75653
#90881 failed with #91409
#91048 faced on iOS with #91448
#91257 faced on Web with #91385
PRs Untested:
#90752 (comment)
#91053 (comment)
Julesssss commentedon May 22, 2026
Internal QA checked off
roryabraham commentedon May 22, 2026