Repository navigation
Deploy Checklist: New Expensify 2026-10-23 #104870
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.5.20-5
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:
- Gate task assignee edit selection behind a Save button (a11y On Input, PR 15) #101686
- Keep edited file attachments laid out as cards #101717
- [NoQA] Make the Reassure perf check's trigger readable and correct #101868
- Add bulk update start date for Company Card #102121
- [Part 2.7] Remove Onyx.connect(ONYXKEYS.SESSION) in ReportActionsUtils: thread currentUserAccountID through isWhisperActionTargetedToOthers #102397
- [Payment due @mkhutornyi] Show a status modal for Select all bulk actions #102616
- Remove the original expense from expanded group snapshots when splitting in group-by views #102692
- [Payment due @ahmedGaber93] Send the full policy snapshot version with OpenReport #102757
- [No QA] Update help docs for Release 1: Stand up a baseline Insights page #102832
- Upgrade react-native-vision-camera from v4 to v5 #102898
- Part 5 - Audit usage of Str.removeSMSDomain #102902
- Stop the app review prompt from reappearing after the user answers it #102904
- [Payment due @marufsharifi] Show Concierge explain link on cross-border reimbursed entries #102905
- [Payment due @Pujan92] Add approve-only workspace role #102933
- Scan - Unable to create scan expense without merchant in 1:1 chat #103074
- [No QA] Implement Hermes version check for our custom artifacts #103317
- Add Append custom tag list for accounting-connected workspaces on the indirectTagUploads beta #103359
- Migrate attachment carousel and MultiGestureCanvas gestures to Gesture Handler 3 hooks #103461
- Treat first eligible business bank account as invoice default when no… #103485
- Add imported vendor enable and disable controls #103549
- Map animations improvements #103582
- Bump
react-native-walletto 0.1.41 #103625 - Reapply "Add a More menu option to switch single-expense reports between expense view and table view" #103703
- Move hold/reject educational modals to the global modal stack #103709
- Fix - Android-Expense-Report name shows 'Chat Report' briefly on expense opened offline via growl #103753
- Remove onyx connect for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in Parser lib - Part 2 #103840
- Restore inline editing of the Expensify Card name #103894
- Part 16c-1 - Add optional delegateAccountID to the openReport param chain #103899
- Disable Sentry TurboModuleContext integration #103900
- Remove unsafe assertions from emoji menus, room creation, and card settlement #103920
- Remove deprecatedAllTransactions from hasExpenses #103968
- [No QA] [Performance] Wide pre-mount 4/5: pre-mount lifecycle #103975
- [No QA] Docs updates for E/A#94096 Note Plaid company card balance and remaining limit #103990
- [NO QA] Remove deprecated getLinkedTransaction from getReportPreviewReportActionMessage #103992
- Display localized workspace archive and unarchive change logs #104019
- Use the original file name when downloading chat videos #104072
- [No-QA] Remove unsafe assertions from reports, validation, and payment/card actions #104087
- [Payment due @suneox] fix: stop sending an empty email to BE when updating member custom fields #104101
- [Payment due @ZhenjaHorbach] [No QA] [Wise] Fix DynamicForm accessibility issues #104105
- [Payment due @linhvovan29546] Exclude non-manageable agents from workspace invite list #104110
- refactor: remove unsafe assertions from attachment, emoji and report-field components #104134
- [Payment due @Pujan92] [No QA] Update shell-quote to 1.12.0 #104173
- Add Business Central multi-card account export settings #104189
- Move LHN row data reads into the rows #104196
- Allow replacing a manual expense receipt while the backend scans it #104215
- Skip already escaped colons when escaping tag names #104305
- Show nights and nightly rate under Category for multi-night reservation expenses #104310
- Make the sections list keyExtractor handle a missing item #104311
- [CFI] Payment history: Activity list with the active user count #104325
- [Payment due @nkdengineer] Set user-level office arrangements #104344
- [Payment due @Ollyws] Upgrade awesome-phonenumber to 6.11.0 so newer US area codes like 983 validate #104372
- Keep the report subtree mounted when the linked action param changes #104381
- [No QA] Docs updates for E/A#103309 Add declined search operator for rejected expenses and reports #104383
- [No QA] Docs updates for E/A#104128 Add Guest role to Managing Workspace Members article #104385
- fix: Merchant name changes save on an expense, but the Reports tab continues to show the old merchant name. #104450
- Bump react-native-web to 0.21.4 #104487
- [No QA] Serve the web build's Brotli 11 twins from the Cloudflare Worker #104493
- Center the LHN avatar tooltip on the avatar #104512
- [NO QA] Use Consolidated Travel Billing in Campfire and DualEntry settings #104518
- Add search to the workspace picker when there are 12 or more workspaces #104526
- 104404 Add TravelApproval beta and Spend Travel section with Trips #104536
- [No QA] add comprehensive layout and responsiveness tests for NumericInput #104544
- [NoQA] [Insights] Only send GetInsights snapshot hashes for charts the user can see #104545
- [Payment due @situchan] Updates to authtokens in url #104552
- [No QA] perf: record source tab and preload wait on the Inbox tab span #104567
- [NoQA] [Insights] Fix console warnings on Insights and Home charts #104578
- Delete office location after the edit panel closes to avoid a Not here flash #104580
- fix: "Find Member" input and "Filters" button are moved while resizing members table #104588
- [Payment due @aimane-chnaif] Force data refresh for the manual QBD sync action #104592
- [No QA] Update list-row Onyx rules: PERF-3, PERF-11, new PERF-21 and PERF-22 #104593
- [No QA] Recycle Jest workers past 2GB to stop CI OOM kills #104639
- [No QA] Bump reassure to 1.6.1 to fix simple-git Dependabot alerts #104656
- [CP Staging] Revert "Reapply "Add a More menu option to switch single-expense reports between expense view and table view"" #104661
- [No QA] Fix typecheck on main #104672
- Scroll New rule to the describe box when it gets focus #104684
- Show another user's full unreported expense tag in a single Tag row #104700
- [No QA] Mock useLoadPolicyCategories in CategoryPickerTest to fix failing test #104711
- perf: memoize Search column size options so leaving Spend doesn't re-render every row #104716
- [No QA] Upgrade Bun to 1.4.4 #104724
- Show letter avatars for new emails in the invite member list #104732
- perf: make Search rows read their own focus #104734
- [No QA] fix(scripts): retry failed dependency patches #104737
- perf: Keep Search row selection actions stable #104739
- [No QA] Return 404 when the Cloudflare Worker's previous builds bucket can't be read #104769
- [CP Staging] Keep NetSuite OAuth upgrade option visible for TBA connections #104777
- [Payment due @situchan] [cp staging] Update the triggers for SetRule #104779
- Show Cash accruals and Bank reconciliation to Payments Admins #104783
- [NO QA] Rename the ZohoBooks Travel Billing commands #104784
- [NO QA] Rename the Consolidated Travel Billing accounting page URLs #104785
- [NO QA] Rename TravelInvoicing translation keys to TravelBilling #104787
- [No QA] Block compromised Java certificates in CI #104803
- [Payment due @mkhutornyi] Fix rules-based approval workflows so over-limit approvers go AFTER the approver in its step #104835
- Remove the describeRule beta #104861
- [CP Staging] Exclude disabled vendors from rules vendor picker #104895
- [CP Staging] Push errors when vendor enablement changes #104898
- Temporarily block approve-only role assignment #104952
- [CP Staging] fix: Downscale oversized in-app camera photos before use #104979
Mobile-Expensify PRs:
- https://github.com/Expensify/Mobile-Expensify/pull/14182
- https://github.com/Expensify/Mobile-Expensify/pull/14194
- https://github.com/Expensify/Mobile-Expensify/pull/14197
Internal QA:
Deploy Blockers:
- [Due for payment 2026-11-02] Rules - Disabled vendor is shown in vendor list when creating rule #104891
- [Due for payment 2026-11-02] Expense- "Vendor no longer valid" error does not appear on Vendor field when disabled offline #104892
- Members - Not here page opens after refreshing Change office location RHP #104893
- Vendors - Changelog shows code instead of vendor name in #admins room #104894
- Members - Error shows up after people admin changes member's office location #104896
- Expense - Create report button is unresponsive when user role is approve-only #104897
- Default label is shown briefly on approve-only workspace after deleting default workspace #104902
- Expense - Error shows up when approve-only member duplicates report #104903
- Tags - Error importing CSV when appending custom tag list #104904
- Next step shows "Waiting for you to add expenses", LHN shows GBR for approve-only member #104907
- [Due for payment 2026-11-02] Vendor - 0 selected button is not shown in selection mode after deselecting vendor #104908
- Expense - Unable to create expense with Parent\\:Child tag, wrong preview on Tag field&table #104911
- Members - Error shows up on one of the member rows after bulk changing role to Approve-only #104912
- Report page is empty when submitting to employer when there are reports in approve-only WS #104914
- Expense - Error shows up when approve-only member creates per diem expense #104917
- [Due for payment 2026-11-02] Android - Profile - Size exceed error shows up when taking photo for avatar #104941
- Workspace - Rooms page is empty when opened as approve-only member #104943
- Workspace - Workspace chat is not visible on member´s side when invited as "Approve-Only" #104944
- Expense - Error shows up after creating expense to approve-only workspace from self DM #104945
- The role changes with no error when assign the Approve-only role to a member offline #104946
- Expense -"Approve Only" member can submit expense if role is changed after expense creation #104948
- [Due for payment 2026-11-02] Members - Member's role can be changed to Approve-only when member has card on the workspace #104949
- Company cards - "Transaction start date updated" growl is shown when the feed is deleted #104950
- Approve-only member can create room via room mention but not via FAB #104959
- Tags - Not here page opens after editing custom tag name from uploaded CSV #105001
Chronologically ordered merged PRs (oldest first)
- [Payment due @huult] Implement AddToDigitalWallet MFA scenario #104179
- [No QA] Recycle Jest workers past 2GB to stop CI OOM kills #104639
- Part 16c-1 - Add optional delegateAccountID to the openReport param chain #103899
- [Payment due @marufsharifi] Show Concierge explain link on cross-border reimbursed entries #102905
- Move hold/reject educational modals to the global modal stack #103709
- [NoQA] Make the Reassure perf check's trigger readable and correct #101868
- Part 5 - Audit usage of Str.removeSMSDomain #102902
- Add imported vendor enable and disable controls #103549
- Reapply "Add a More menu option to switch single-expense reports between expense view and table view" #103703
- Stop the app review prompt from reappearing after the user answers it #102904
- [No QA] Update help docs for Release 1: Stand up a baseline Insights page #102832
- Remove deprecatedAllTransactions from hasExpenses #103968
- Add search to the workspace picker when there are 12 or more workspaces #104526
- fix: Merchant name changes save on an expense, but the Reports tab continues to show the old merchant name. #104450
- refactor: remove unsafe assertions from attachment, emoji and report-field components #104134
- Map animations improvements #103582
- Remove unsafe assertions from emoji menus, room creation, and card settlement #103920
- Remove onyx connect for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in Parser lib - Part 2 #103840
- [No QA] Docs updates for E/A#103309 Add declined search operator for rejected expenses and reports #104383
- [No QA] Docs updates for E/A#94096 Note Plaid company card balance and remaining limit #103990
- [No QA] Docs updates for E/A#104128 Add Guest role to Managing Workspace Members article #104385
- Center the LHN avatar tooltip on the avatar #104512
- [No QA] Fix typecheck on main #104672
- [Payment due @aimane-chnaif] Force data refresh for the manual QBD sync action #104592
- Add Append custom tag list for accounting-connected workspaces on the indirectTagUploads beta #103359
- Use the original file name when downloading chat videos #104072
- [Payment due @situchan] Updates to authtokens in url #104552
- Fix - Android-Expense-Report name shows 'Chat Report' briefly on expense opened offline via growl #103753
- [No QA] Mock useLoadPolicyCategories in CategoryPickerTest to fix failing test #104711
- Allow replacing a manual expense receipt while the backend scans it #104215
- fix: "Find Member" input and "Filters" button are moved while resizing members table #104588
- [Payment due @nkdengineer] Set user-level office arrangements #104344
- [CP Staging] Revert "Reapply "Add a More menu option to switch single-expense reports between expense view and table view"" #104661
- Mobile-Expensify submodule update to
9.5.16-1— Adhoc Build - [No QA] Update list-row Onyx rules: PERF-3, PERF-11, new PERF-21 and PERF-22 #104593
- [No QA] perf: record source tab and preload wait on the Inbox tab span #104567
- [No QA] add comprehensive layout and responsiveness tests for NumericInput #104544
- perf: memoize Search column size options so leaving Spend doesn't re-render every row #104716
- Mobile-Expensify submodule update to
d34f344— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14194 - [NO QA] Use Consolidated Travel Billing in Campfire and DualEntry settings #104518
- Bump
react-native-walletto 0.1.41 #103625 - [No QA] Upgrade Bun to 1.4.4 #104724
- [No QA] fix(scripts): retry failed dependency patches #104737
- [Payment due @Ollyws] Upgrade awesome-phonenumber to 6.11.0 so newer US area codes like 983 validate #104372
- [Payment due @ZhenjaHorbach] [No QA] [Wise] Fix DynamicForm accessibility issues #104105
- Delete office location after the edit panel closes to avoid a Not here flash #104580
- [NoQA] [Insights] Only send GetInsights snapshot hashes for charts the user can see #104545
- Keep the report subtree mounted when the linked action param changes #104381
- Scan - Unable to create scan expense without merchant in 1:1 chat #103074
- [NoQA] [Insights] Fix console warnings on Insights and Home charts #104578
- Gate task assignee edit selection behind a Save button (a11y On Input, PR 15) #101686
- Show nights and nightly rate under Category for multi-night reservation expenses #104310
- [CFI] Payment history: Activity list with the active user count #104325
- [No QA] Bump reassure to 1.6.1 to fix simple-git Dependabot alerts #104656
- [NO QA] Remove deprecated getLinkedTransaction from getReportPreviewReportActionMessage #103992
- 104404 Add TravelApproval beta and Spend Travel section with Trips #104536
- [Payment due @situchan] [cp staging] Update the triggers for SetRule #104779
- [No QA] Return 404 when the Cloudflare Worker's previous builds bucket can't be read #104769
- Mobile-Expensify submodule update to
9.5.16-2— Adhoc Build - Mobile-Expensify submodule update to
9.5.16-3— Adhoc Build - Remove the original expense from expanded group snapshots when splitting in group-by views #102692
- Mobile-Expensify submodule update to
9.5.17-0— Adhoc Build - Mobile-Expensify submodule update to
9.5.18-0— Adhoc Build - [CP Staging] Keep NetSuite OAuth upgrade option visible for TBA connections #104777
- Mobile-Expensify submodule update to
9.5.18-1— Adhoc Build - Upgrade react-native-vision-camera from v4 to v5 #102898
- [Payment due @linhvovan29546] Exclude non-manageable agents from workspace invite list #104110
- Disable Sentry TurboModuleContext integration #103900
- Make the sections list keyExtractor handle a missing item #104311
- Mobile-Expensify submodule update to
a9f2423— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14182 - [No QA] [Performance] Wide pre-mount 4/5: pre-mount lifecycle #103975
- Show letter avatars for new emails in the invite member list #104732
- [Part 2.7] Remove Onyx.connect(ONYXKEYS.SESSION) in ReportActionsUtils: thread currentUserAccountID through isWhisperActionTargetedToOthers #102397
- Skip already escaped colons when escaping tag names #104305
- Display localized workspace archive and unarchive change logs #104019
- Treat first eligible business bank account as invoice default when no… #103485
- Add Business Central multi-card account export settings #104189
- [No-QA] Remove unsafe assertions from reports, validation, and payment/card actions #104087
- [No QA] Serve the web build's Brotli 11 twins from the Cloudflare Worker #104493
- Mobile-Expensify submodule update to
9.5.18-2— Adhoc Build - Move LHN row data reads into the rows #104196
- [No QA] Implement Hermes version check for our custom artifacts #103317
- Scroll New rule to the describe box when it gets focus #104684
- Show another user's full unreported expense tag in a single Tag row #104700
- Mobile-Expensify submodule update to
bf46249— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14197 - [No QA] Block compromised Java certificates in CI #104803
- [Payment due @suneox] fix: stop sending an empty email to BE when updating member custom fields #104101
- Migrate attachment carousel and MultiGestureCanvas gestures to Gesture Handler 3 hooks #103461
- Restore inline editing of the Expensify Card name #103894
- [NO QA] Rename the ZohoBooks Travel Billing commands #104784
- Keep edited file attachments laid out as cards #101717
- [Payment due @mkhutornyi] Show a status modal for Select all bulk actions #102616
- [Payment due @ahmedGaber93] Send the full policy snapshot version with OpenReport #102757
- perf: make Search rows read their own focus #104734
- perf: Keep Search row selection actions stable #104739
- [Payment due @mkhutornyi] Fix rules-based approval workflows so over-limit approvers go AFTER the approver in its step #104835
- Add bulk update start date for Company Card #102121
- Bump react-native-web to 0.21.4 #104487
- [Payment due @Pujan92] Add approve-only workspace role #102933
- [NO QA] Rename TravelInvoicing translation keys to TravelBilling #104787
- [NO QA] Rename the Consolidated Travel Billing accounting page URLs #104785
- Show Cash accruals and Bank reconciliation to Payments Admins #104783
- [Payment due @Pujan92] [No QA] Update shell-quote to 1.12.0 #104173
- Mobile-Expensify submodule update to
9.5.19-0— Adhoc Build - Mobile-Expensify submodule update to
9.5.20-0— Adhoc Build - [CP Staging] Push errors when vendor enablement changes #104898
- Mobile-Expensify submodule update to
9.5.20-1— 029183c - [CP Staging] Exclude disabled vendors from rules vendor picker #104895
- Mobile-Expensify submodule update to
9.5.20-2— 359eaa1 - [CP Staging] fix: Downscale oversized in-app camera photos before use #104979
- Mobile-Expensify submodule update to
9.5.20-3— 5aa5c2f - Mobile-Expensify submodule update to
9.5.20-4— 0dd97f8 - Temporarily block approve-only role assignment #104952
- Mobile-Expensify submodule update to
9.5.20-5— 3e93d0e - Remove the describeRule beta #104861
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
rafecolton commentedon Oct 23, 2026
Currently block testing #104179 until
9.5.20becomes available in TestFlight on iOSrafecolton commentedon Oct 23, 2026
#104179 passes - more here
IuliiaHerets commentedon Oct 23, 2026
Regression progress is at 55%
PRs Failing:
#104019 faced on Web
#104344 faced on Web
#104372 failed
#104835 failed
PRs Untested:
Multiple PRs across all platforms are pending validation
IuliiaHerets commentedon Oct 24, 2026
Regression progress completed in BS
PRs Failing:
#102933 failed
#103359 faced with #104904
#104019 faced on Web
#104325 failed
#104344 faced on Web with #104893
#104372 failed
#104835 failed
PRs Untested:
#101717 pending validation on iOS
#102904 pending validation on Web, Android and iOS
#102905 seems like an internal PR, asked
#103703 PR was reverted, comment
#103709 pending validation on iOS
#103920 pending validation on Web
#104189 pending validation on Web, Android and iOS
#104311 asked about Distance flow
#104592 pending validation on Web
#104732 no QA steps, asked
#104777 pending validation on Web, Android and iOS
IuliiaHerets commentedon Oct 26, 2026
Regression was completed
PRs Failing:
#101717 faced on iOS with #96298, repro on prod, checking off
#102933 failed with #104946, but the offline steps have since been updated in comment. Can we check it off?
#103359 faced with #104904
#103625 faced with #99766, repro on prod, checking off
#103840 failed with #105002
#104019 faced on Web with #104956, repro on prod, checking off
#104325 failed with #104962 and #104963
#104344 faced on Web with #104893
#104372 failed with #104964, repro on prod
#104700 faced with #104960, repro on prod, checking off
#104835 failed with #104961, repro on prod
PRs Untested:
#102905 seems like an internal PR, asked
#103703 PR was reverted, comment
#104311 Scan flow was passed, asked about Distance flow
#104732 no QA steps, asked
Critical TCs that are failing:
Account Settings with #104966
Onboarding with #98848
Critical Viral Path with #101182
Beamanator commentedon Oct 26, 2026
demoting #104894
jasperhuangg commentedon Oct 26, 2026
demoting
#104943
#104945
#104959
Beamanator commentedon Oct 26, 2026
#104892 and #104908 fixed by #104898
Beamanator commentedon Oct 26, 2026
#104891 fixed by #104895
jasperhuangg commentedon Oct 26, 2026