Skip to content

Deploy Checklist: New Expensify 2026-04-21 #88394

@OSBotify

Description

@OSBotify

Release Version: 9.3.61-4
Compare Changes: production...staging
Mobile-Expensify Changes: https://github.com/Expensify/Mobile-Expensify/compare/production...staging

This release contains changes from the following pull requests:

Mobile-Expensify PRs:

Internal QA:

Deploy Blockers:

Chronologically ordered merged PRs (oldest first)
  1. [No QA] Merge main  #87931
  2. [NoQA] Migrated MoneyRequestAccountantSelector.tsx from useOptionsList to usePersonalDetailOptions #87716
  3. feat: 86765 Onyx bump to 3.0.60 #87836
  4. Mobile-Expensify submodule update to 65c273aAdhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13905
  5. [No QA] Update help site: Discover section hidden after tour #87191
  6. [No QA] Update Import-Personal-Card-Transactions-From-a-Spreadsheet.md #88011
  7. Mobile-Expensify submodule update to 9.3.60-1Adhoc Build
  8. Map settlement state 9 (SETTLED_NEEDS_BATCH_PROCESSING) to CLEARED #87798
  9. [Performance] Refactor: Extract SubmitExpenseOrchestrator + centralize telemetry #87963
  10. BT - Migrate QBO EXPORT Routes - 1 #87418
  11. BT - Migrate CATEGORIES_IMPORT #87273
  12. Fix The emoji bar is overlapped by the notch on landscape #87485
  13. Fix Page scrolls to the top after switching to landscape mode & entering number #87656
  14. fix: Unable to sort by Attendees and Per attendee #87740
  15. Using ReportID from route #88053
  16. [No QA] Add report-level reject documentation to help site #87054
  17. fix network state detection #84760
  18. Navigate to VBA flow after invoice account verification #88015
  19. Mobile-Expensify submodule update to 9.3.60-2Adhoc Build
  20. Navigate to HOME after openApp to trigger onboarding for anonymous sign-in #87257
  21. Mobile-Expensify submodule update to 9.3.60-3Adhoc Build
  22. Mobile-Expensify submodule update to 9.3.60-4Adhoc Build
  23. Mobile-Expensify submodule update to 9.3.60-5Adhoc Build
  24. Mobile-Expensify submodule update to 9.3.60-6Adhoc Build
  25. chore: remove beta checks for personal card import #87567
  26. [No QA] Pass deviceInfo on sign in #87923
  27. Fixed implementation of useAutoUpdateTimezone to ignore delegate and do the check on focus event #84738
  28. [Search] Auto-apply change approver when only one option is available #87950
  29. [No QA] Enable Call capability for iOS Group-IB Fraud Protection #88050
  30. Remove beta for optimistic transaction threads #88090
  31. Mobile-Expensify submodule update to 9.3.60-7Adhoc Build
  32. Mobile-Expensify submodule update to 9.3.60-8Adhoc Build
  33. Mobile-Expensify submodule update to 9.3.60-9Adhoc Build
  34. [Payment due @bernhardoj] Properly determine the feedType to assign to new CSV feeds #87603
  35. [No QA] Add regression test for: web auto-focus blocked by phantom screen reader #87184
  36. Update Home announcements with April 2026 product update #88061
  37. Fix: Android react-native-pdf scanner - event coalescing #87416
  38. fix "QuickBooks Desktop setup" page is not scrollable  #87788
  39. Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/SubscriptionUtils Part 2 #87596
  40. [NO QA] Use pendingSettlementAmount for travel invoicing pending state #87436
  41. Mobile-Expensify submodule update to 9.3.60-10Adhoc Build
  42. Move some logic into SearchAutocompleteList and restore manual memoization #87494
  43. Rename Reports page to Spend #87974
  44. Dismiss keyboard on PDF password submit (Android) #86190
  45. Mobile-Expensify submodule update to 54c248eAdhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13916
  46. Filter Expensify team members from approval workflows table #83366
  47. Mobile-Expensify submodule update to 9.3.60-11Adhoc Build
  48. fix: Re-apply screen reader disabled button announcement with crash fix #87670
  49. [No QA] perf: defer styles computation from module import to provider render #88097
  50. Allow decimal values in Chronos Schedule OOO duration input #88042
  51. [Domain Control] [Release 4] [FE] Create MoveUsersBetweenGroupsPage #81973
  52. Retry Travel Invoicing cards provisioning #88104
  53. Fix issue: Home - Connect to accounting task is checked off when connection fails #87739
  54. fix undelete button background in selection mode #88076
  55. Mobile-Expensify submodule update to 9.3.60-12Adhoc Build
  56. New layout for Scan screen in landscape mode #87875
  57. Optimize LHN sidebar sorting with pre-computed sort keys #87847
  58. GIACT Personal Bank Account checks differ on New Dot and Old Dot #82812
  59. [NoQA] Update the syncVersion workflow #88170
  60. fix receipt is hidden on split bill confirm page in landscape mode  #87893
  61. Fix - Android - Chat - Composer is no longer highlighted after rotation, emoji picker does not open #88122
  62. Migrate Workspace - NetSuite Advanced + Sage  #87226
  63. Add backward compatibility for paths migrated to dynamic routes #87870
  64. fix card fraud reported page is not scrollable and blocked in landscape mode #87785
  65. [Payment due @eVoloshchak] Add 1-4 and 5-10 company sizes to onboarding flow #86694
  66. BT - Migrate NET SUITE Part 1 #87172
  67. perf: extract useExpenseSubmission hook from IOURequestStepConfirmation #87487
  68. Fix: Filter ineligible reports in useOutstandingReports hook #84832
  69. Mobile-Expensify submodule update to 9.3.60-13Adhoc Build
  70. [No QA] Add tests for useReceiptPreviewsSizes #88199
  71. Show warning when selecting member already in approval workflow #87736
  72. Mobile-Expensify submodule update to 9.3.60-14Adhoc Build
  73. fix: replace HOME instead of pushing when navigating to Settings RHP #88117
  74. fix: address bulk duplicate expense follow-ups  #87697
  75. [NO QA] Scope deploy blocker assignment to highest-confidence causing PR #88154
  76. [No QA] Update Concierge help docs with Settings > Help path #86998
  77. Enable undelete action when offline #88071
  78. [Home Page] Expensify card - filter out $0 limit cards  #88103
  79. Resolve @ts-expect-error comments related to OnyxUpdate changes - first batch #82255
  80. Fix extra spacing in pay section #88211
  81. [Domain Control] Clean up domain adminship #86815
  82. Mobile-Expensify submodule update to 9.3.60-15Adhoc Build
  83. fix: Hold option is available in reports for approved expense #86079
  84. Mobile-Expensify submodule update to 9.3.60-16Adhoc Build
  85. Mobile-Expensify submodule update to 9.3.60-17Adhoc Build
  86. [NoQA] Add HR and Gusto foundation #87689
  87. Remove Onyx.connect() usage for ONYXKEYS.COLLECTION.POLICY_TAGS in getMoneyRequestInformation function from src/libs/actions/IOU/index.ts #87236
  88. [NO QA] Fix deploy blocker investigation summary formatting #88218
  89. Fix missing required label on confirm details page for dependent tags #87947
  90. Mobile-Expensify submodule update to f81070bAdhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13910
  91. [No QA] Enable Hermes V1 #87387
  92. Blur active input before resetting split shares on iOS #87834
  93. [No QA] Improve error formatting in React Compiler check script #88172
  94. Fix avatar and confirm page loading infinitely in offline #88120
  95. [No QA] Use stdout and stderr streams for react compiler script #88242
  96. Fix undeleted action width #88165
  97. Fix: Web-Scan-Scan expense from Reports, the existing report disappears in filter for a while #82042
  98. Fix not here page after moving IOU report to workspace #87167
  99. Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 2) #88212
  100. Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 3) #88215
  101. Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 4) #88252
  102. Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 5) #88253
  103. Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 6) #88278
  104. Refactor: migrate convertToDisplayString to useCurrencyListActions hook (part 7) #88279
  105. BT - Migrate EXIT_SURVEY_REASON and EXIT_SURVEY_CONFIRM #86767
  106. refactor: PureReportActionItem, add ChatMessageContent  #88112
  107. [Payment due @parasharrajat] Replace the old generateDefaultWorkspaceName with the new one #87706
  108. [Internal QA] Add credits balance to subscription settings #87790
  109. ReportActionCompose 3/6: ComposerProvider with subcomponents #87639
  110. Fix Learn more button - Company cards #88195
  111. Fix Suggestion modal appear at the bottom and blocks composer #87350
  112. Fix Onboarding slides are overlapped by the notch on landscape #87579
  113. Remove incorrect route argument from LockAccountPage back button #88003
  114. Fix Zoom green dot slider is not fully visible and functioning in landscape #87613
  115. Fix White page is shown instead plaid in landscape #87752
  116. fix: show inline member row error when workspace role update fails #87994
  117. decompose MoneyReportHeader secondary actions #88304
  118. Pass shouldRestrictAction=true for track and distance quick actions #87973
  119. Fix missing subheader in workspace duplication flow on Android #88299
  120. [Payment due @bernhardoj] Properly display CSV feeds before we load the cards #88136
  121. 82304: Search - The workspace with the same name is not displayed in the autocomplete #82784
  122. Mobile-Expensify submodule update to f4d79beAdhoc Build
    https://github.com/Expensify/Mobile-Expensify/pull/13914
  123. Navigate back to taxes list when tax detail RHN can't find tax #87175
  124. Remove Onyx.connect() key ONYXKEYS.COLLECTION.REPORT_ACTIONS in src/libs/OptionsListUtils.ts - part 2 #86409
  125. BT - Migrate QBO AUTO_SYNC and ACCOUNTING_METHOD #88020
  126. [NoQA] Display human agent identity on Concierge messages #87508
  127. Fix - bugs 87217/87205/87207 #87428
  128. Mobile-Expensify submodule update to 9.3.60-18Adhoc Build
  129. [Payment due @sobitneupane] Account for null values in prepareRequestPayload #87259
  130. Mobile-Expensify submodule update to 9.3.60-19Adhoc Build
  131. Add timeout to clear stuck Agent Zero optimistic indicator #87466
  132. iOS: Fix cached images not displaying offline #87986
  133. Copy transaction comment when changing report #88190
  134. Export and duplicated deleted expenses #88192
  135. Update search groupings and suggested search names in LHN #88181
  136. Delete tax follow-ups #87981
  137. Use agent firstName (not full displayName) for assisted by label #88341
  138. Part 4: Remove Onyx.connect() for the key: ONYXKEYS.SESSION in src/libs/SubscriptionUtils #87992
  139. [NoQA] NetSuite Travel Invoicing — Add Travel vendor and Travel payable account selectors #88220
  140. [NoQA] Remove unused exports (batch 3) #88282
  141. [Payment due @suneox] Add followup_clicked telemetry to resolveSuggestedFollowup #88277
  142. Handle queries that use both a date preset and a custom range in Search filters UI #87972
  143. refactor shouldDisplayReportInLHN to use isOffline from useOnyx #87944
  144. Action Badge: deep link to report action #87166
  145. [NO QA] chore: upgrade TypeScript to version ^6.0.2 #87771
  146. Mobile-Expensify submodule update to 9.3.60-20Adhoc Build
  147. Deploy checklists get labeled Monthly by MelvinBot [No QA] #88366
  148. [NoQA] Remove unused exports (batch 2) #88281
  149. Mobile-Expensify submodule update to 9.3.60-21Adhoc Build
  150. [No QA] [Payment due @FitseTLT] [No QA] Update Distance Expenses help doc for selfDM rate selection #87278
  151. [No QA] Update QBD help article for reusing existing connections #87438
  152. [No QA] Add Gusto HR page setup #88005
  153. refactor: PureReportActionItem, add ModifiedExpenseContent and ReimbursementDeQueuedContent #87756
  154. Mobile-Expensify submodule update to 9.3.60-22Adhoc Build
  155. ReportActionCompose 4/6: extract input hooks #88319
  156. perf: defer personal details weighting in SuggestionMention #88332
  157. BT - Migrate SAGE_INTACCT Export #87554
  158. [No QA] fix: Remove Onyx.connect() for the key: ONYXKEYS.COLLECTION.POLICY (part 4) #88012
  159. 83860 migrate categories settings tags #86947
  160. Add useCardFeeds regression tests for empty linkedPolicyIDs #88359
  161. BT: Migrate CHANGE_APPROVER #88361
  162. Fix aspect ratio not being preserved #88134
  163. Mobile-Expensify submodule update to 9.3.61-0Adhoc Build
  164. Mobile-Expensify submodule update to 9.3.61-146d5356
    https://github.com/Expensify/Mobile-Expensify/pull/13923
  165. Mobile-Expensify submodule update to include cherry-picked PR #13923f5b3b31
  166. Mobile-Expensify submodule update to 9.3.61-2ccf317f
  167. Revert "Sage Intacct BT dynamic routes, part 1" (#87554) — fixes #88434 #88490
  168. 🍒 Cherry pick PR #88490 to staging 🍒 #88494
  169. [CP Staging] Fix mWeb - Company card - Learn more button is shown as a single L button #88514
  170. Mobile-Expensify submodule update to 9.3.61-3fc5b87b
  171. [CP Staging] Fix QA guide avatar disappearing when reopening admins room #88571
  172. Mobile-Expensify submodule update to 9.3.61-4f2b5b1a

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

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions