Skip to content

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

Closed

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 65c273a — Adhoc 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-1 — Adhoc 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-2 — Adhoc Build
  20. Navigate to HOME after openApp to trigger onboarding for anonymous sign-in #87257
  21. Mobile-Expensify submodule update to 9.3.60-3 — Adhoc Build
  22. Mobile-Expensify submodule update to 9.3.60-4 — Adhoc Build
  23. Mobile-Expensify submodule update to 9.3.60-5 — Adhoc Build
  24. Mobile-Expensify submodule update to 9.3.60-6 — Adhoc 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-7 — Adhoc Build
  32. Mobile-Expensify submodule update to 9.3.60-8 — Adhoc Build
  33. Mobile-Expensify submodule update to 9.3.60-9 — Adhoc 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-10 — Adhoc 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 54c248e — Adhoc 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-11 — Adhoc 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-12 — Adhoc 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-13 — Adhoc 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-14 — Adhoc 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-15 — Adhoc Build
  83. fix: Hold option is available in reports for approved expense #86079
  84. Mobile-Expensify submodule update to 9.3.60-16 — Adhoc Build
  85. Mobile-Expensify submodule update to 9.3.60-17 — Adhoc 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 f81070b — Adhoc 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 f4d79be — Adhoc 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-18 — Adhoc Build
  129. [Payment due @sobitneupane] Account for null values in prepareRequestPayload #87259
  130. Mobile-Expensify submodule update to 9.3.60-19 — Adhoc 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-20 — Adhoc 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-21 — Adhoc 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-22 — Adhoc 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-0 — Adhoc Build
  164. Mobile-Expensify submodule update to 9.3.61-1 — 46d5356
    ↳ https://github.com/Expensify/Mobile-Expensify/pull/13923
  165. Mobile-Expensify submodule update to include cherry-picked PR #13923 — f5b3b31
  166. Mobile-Expensify submodule update to 9.3.61-2 — ccf317f
  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-3 — fc5b87b
  171. [CP Staging] Fix QA guide avatar disappearing when reopening admins room #88571
  172. Mobile-Expensify submodule update to 9.3.61-4 — f2b5b1a

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

Activity

  1. izarutskaya commented on Apr 21, 2026

    @izarutskaya

    Regression progress is at 50%

    PRs Failing:
    #82255 on Web with #88423 & #88355
    #87994 on Web with #88436

    PRs Untested:
    Several slots still pending validation: Web 5 | Android 90 | iOS 62

    Android App crashes on our side. Thread

  2. rlinoz commented on Apr 21, 2026

    @rlinoz
    Contributor

    Demoted #88420

  3. cristipaval commented on Apr 21, 2026

    @cristipaval
    Contributor

    checked off #87790

  4. removed their assignment
    on Apr 21, 2026
  5. IuliiaHerets commented on Apr 21, 2026

    @IuliiaHerets

    Regression progress is at 97%

    PRs Failing:
    #82255 failed on Web with #88355 and #88423
    #86767 failed on Native apps with #88476
    #87739 failed on Web with #88482
    #87973 faced on Web with #88454
    #87994 failed with #88436
    #88117 failed with #87655
    #88319 faced with #88471

    PRs Untested:
    Several still pending validation: Web 4 | Android 31 | iOS 19**PRs

    Blocked PRs:
    #86694 asked
    #87226 asked
    #87836 asked
    #88090 no QA steps, asked
    #88341 no QA steps, asked
    #88359 asked

  6. rlinoz commented on Apr 21, 2026

    @rlinoz
    Contributor

    Demoted #88423

  7. marcaaron commented on Apr 21, 2026

    @marcaaron
    Contributor

    Just noting to self that @stephanieelliott and @JmillsExpensify requested this to be merged right after the next production release.

  8. m-natarajan commented on Apr 21, 2026

    @m-natarajan

    Regression progress is at 99%

    PRs Failing:
    #82255 failed on Web with #88355 and #88423
    #86190 faced on Android with #85889
    #86767 failed on Native apps with #88476
    #87739 failed on Web with #88482
    #87973 faced on Web with #88454
    #87994 failed with #88436
    #88117 failed with #87655
    #88319 faced with #88471

    PRs Untested:
    Several PRs still pending validation: Web 1 | Android 7 | iOS 11

    Blocked PRs:
    #86694 #86694 (comment)
    #87226 #87226 (comment)
    #87836 #87836 (comment)
    #88090 no QA steps, #88090
    #88341 no QA steps, #88341 (comment)
    #88359 #88359 (comment)

  9. izarutskaya commented on Apr 22, 2026

    @izarutskaya

    Regression is complete in BrowserStack

    PRs Failing:
    #82255 failed on Web with #88355 and #88423
    #86190 faced on Android with #85889
    #86767 failed on Native apps with #88476
    #87697 faced with issues on Web #88456
    #87739 failed on Web with #88482
    #87963 faced with issue on Android #88501
    #87973 faced on Web with #88454
    #87981 faced with issues #87640 on Android, checking it off the list
    #87994 failed with #88436
    #88053 faced with issues #88499
    #88117 failed with #88444
    #88319 faced with #88471

    PRs Untested:
    #86815 - pending validation on all environments
    #87226 -pending validation on all environments
    #87487 - pending validation on Android
    #87963 - pending validation on Web and iOS
    #88136 - pending validation on Android

    Blocked PRs:
    #86694 #86694 (comment)
    #87670 checked only functional aspect of the PR - passed, checking off the list #87670 (comment)
    #87836 #87836 (comment)
    #88090 no QA steps, #88090
    #88103 question
    #88341 no QA steps, #88341 (comment)
    #88359 #88359 (comment)

  10. cristipaval commented on Apr 22, 2026

    @cristipaval
    Contributor

    Checking off #88050

  11. izarutskaya commented on Apr 22, 2026

    @izarutskaya

    Regression is complete

    PRs Failing:
    #82255 failed on Web with #88355 and #88423
    #86190 faced on Android with #85889
    #86767 failed on Native apps with #88476
    #86815 failed with #88506 & #88505, #86815 (comment)
    #87487 faced with issue #88503 on Android Repro in prod, checking it off
    #87697 faced with issues on Web #88456, closed as expected, checking it off #88456 (comment)
    #87739 failed on Web with #88482
    #87963 faced with issue #88501 #87963 (comment)
    #87973 faced on Web with #88454
    #87981 faced with issues #87640 on Android, repro in prod, checking it off the list
    #87994 failed with #88436
    #88053 faced with issues #88499
    #88117 failed with #88444
    #88319 faced with #88471
    #88136 failed with #88496

    Blocked PRs:
    #86694 #86694 (comment)
    #87226 - #87226 (comment) checking this off the list
    #87670 (comment)
    #87836 #87836 (comment)
    #88090 no QA steps, #88090
    #88103 #88103 (comment)
    #88341 no QA steps, #88341 (comment)
    #88359 #88359 (comment)

    The following critical test cases are failing:
    Travel with https://github.com/Expensify/Expensify/issues/626709
    Critical Viral Path with #48727

  12. cristipaval commented on Apr 22, 2026

    @cristipaval
    Contributor

    checking off #88489

  13. nkuoch commented on Apr 22, 2026

    @nkuoch
    Contributor

    Checking off #88359

  14. removed their assignment
    on Apr 22, 2026
  15. self-assigned this
    on Apr 22, 2026
  16. marcaaron commented on Apr 23, 2026

    @marcaaron
    Contributor

    :shipit:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions