Repository navigation
Deploy Checklist: New Expensify 2026-08-31 #99948
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.4.65-3
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:
- Expense - System message changes from "changed the attendees to.." to "set the attendees to.." #86259
- Remove onyx connect for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in Parser lib - Part 1 #92758
- fix: enable enableEdgeToEdgeBottomSafeAreaPadding #97031
- feat: Add Attendees to Edit multiple in expenses #97108
- Migrate HRSyncResultsModal to @react-navigation modal screen #97172
- Hide receipt attachment actions when the parent conversation is read-only #97423
- Format the copilot display name so a name-less SMS account loses its domain #97932
- [Payment due @Ollyws] Allow invitee to comment on the report #98113
- Migrated user's reports follow Classic approval workflow instead of New Expensify workflow #98120
- Refactor merchant validation into a shared getMerchantError for inline and normal edit flows #98154
- [NoQA] HeaderWithBackButton migration - primitives introduction #98160
- [Payment due @hoangzinh] Add Paid by search filter UI, table column, sorting, and export #98326
- Fix workspace navigation after distance settings deep link #98423
- [Payment due @marufsharifi] Show export status in one app-level modal instead of per screen #98521
- [Commuter Mileage Exclusion] Fix guard modal image overlap #98571
- Fix missing search inputs for Copilot lists #98603
- [Payment due @mkhutornyi] chore: bump react-native-onyx to 3.0.101 #98649
- [No QA] refactor: remove unsafe assertions from deep replacement utility #98759
- [No QA] Docs updates for E/A#97071 Show GL codes in category picker #98818
- Gate Vendors More features row on a supported integration and explain the lock #98845
- [No QA] stop syncing app data when the app comes to the foreground #98888
- Fix layers ordering in GPSMapView #98891
- [No QA] Docs updates for E/A#96364 broken card connection 90-day grace period #98930
- Recognize duplicate-record error as ALREADY_CREATED #98972
- [No QA] Docs updates for E/A#96922 held-expense split and all-on-hold submit block #99026
- [No QA] Normalize path in getPathFromState to fix AI Features Promo SecurityError #99040
- [No QA] feat: add account-size telemetry span attributes and database size measurement #99068
- Align ButtonComposed wrapper props (variant/buttonVariant/buttonSize) #99080
- [No QA] fix: skip reconnectApp on pusher socket blips #99084
- Open money-request child reports in the wide RHP from X Replies #99165
- [Payment due @Krishna2323] [No QA] Add receipt prepare span and capture attributes to scan telemetry #99175
- Fix - Company cards verification always forwards to Add New, skipping feed and upgrade branches #99184
- [No QA] Document that Travel guest email must be unique across companies #99280
- fix: Fix displays on LHN when submit report having expense edit the amount higher than receipt #99303
- [No QA] Skip no-op onboarding resetRoot to stop Safari history.replaceState burst #99314
- Bump react-native-live-markdown #99324
- ReportActionAvatars — ReportAvatar dispatcher + reportID migration + GroupChatAvatar #99351
- Replace getPersonalDetailByEmail with usePersonalDetailByLogin for expensify and company cards #99427
- Fix - International deposit account US flow skips the Plaid or manual choice after verification #99431
- fix: prevent side panel report live tail from crashing on setParams #99533
- fix: NitroSQLite not propagating native errors by upgrading Skia to 2.4.18 #99541
- [No QA] refactor: move personal details helpers to PersonalDetailsUtils #99549
- Cleanup for Decompose Avatar component #99553
- Replace getPersonalDetailByEmail with usePersonalDetailByLogin for share BA and HR #99557
- Refactor: migrate getCurrencySymbol to useCurrencyListActions hook (part 4) #99571
- Fix gray fallback avatars on Workspace Members page #99589
- Duplicate one report per tick when bulk duplicating reports #99639
- Add a "Then" section to the Flag for review rule editor #99655
- Remove
isPolicyExpenseChatEnabledflag #99673 - [No QA] Remove isPolicyExpenseChatEnabled from tests #99674
- [No QA] Fix - Add bank account forward path ignores shouldSetUpUSBankAccount #99729
- Fix Home-Tapping disabled Send button with empty text removes focus and closes keypad #99750
- [NoQA] Redact apiKey in sanitized logs #99771
- Ignore third-party OnyxDB read rejections in Sentry #99819
- Fix stale Add address CTA after saving home address #99834
- [No QA] Log when the default report name is shown in the LHN #99916
- Fix asymmetric padding on the account switcher search field #99970
- [CP Staging] Revert #98603: Copilot list search inputs #99983
- [cp staging] Update Paid by column from live payment actions #99992
Mobile-Expensify PRs:
- https://github.com/Expensify/Mobile-Expensify/pull/14075
- https://github.com/Expensify/Mobile-Expensify/pull/14076
- https://github.com/Expensify/Mobile-Expensify/pull/14082
- https://github.com/Expensify/Mobile-Expensify/pull/14083
- https://github.com/Expensify/Mobile-Expensify/pull/14087
Deploy Blockers:
- [Due for payment 2026-09-09] Copilot - Search field has different left and right padding in account switcher #99961
- [Due for payment 2026-09-09] Android & iOS - Copilot - Copilot - Clear button dismisses keyboard instead of clearing search #99964
- [Due for payment 2026-09-10] Invoice - "1 reply" on invoice preview opens report in central pane instead of RHP #99967
- [Due for payment 2026-09-09] Spend - Paid by column does not immediately show the payer after paying the report on Spend #99968
- Spend - Paid by does not show the payer after selecting Received payment #99969
- [Due for payment 2026-09-09] Android & iOS - Copilot - Search field is not full width in landscape mode #99972
- [Due for payment 2026-09-09] Copilot - Search field does not scroll when navigating with arrow keys #99974
- [Due for payment 2026-09-17] Concierge- 'New' devider is not displayed when open Concierge Anywhere #100006
Chronologically ordered merged PRs (oldest first)
- [No QA] refactor: move personal details helpers to PersonalDetailsUtils #99549
- Remove
isPolicyExpenseChatEnabledflag #99673 - [No QA] Remove isPolicyExpenseChatEnabled from tests #99674
- [Payment due @Krishna2323] [No QA] Add receipt prepare span and capture attributes to scan telemetry #99175
- Mobile-Expensify submodule update to
8b03dfa— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14076 - Remove onyx connect for the key: ONYXKEYS.PERSONAL_DETAILS_LIST in Parser lib - Part 1 #92758
- Expense - System message changes from "changed the attendees to.." to "set the attendees to.." #86259
- Fix missing search inputs for Copilot lists #98603
- [NoQA] Redact apiKey in sanitized logs #99771
- feat: Add Attendees to Edit multiple in expenses #97108
- Bump react-native-live-markdown #99324
- Mobile-Expensify submodule update to
cd2cd49— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14075 - [No QA] fix: skip reconnectApp on pusher socket blips #99084
- [Payment due @Ollyws] Allow invitee to comment on the report #98113
- Recognize duplicate-record error as ALREADY_CREATED #98972
- [Payment due @mkhutornyi] chore: bump react-native-onyx to 3.0.101 #98649
- fix: prevent side panel report live tail from crashing on setParams #99533
- Replace getPersonalDetailByEmail with usePersonalDetailByLogin for expensify and company cards #99427
- Replace getPersonalDetailByEmail with usePersonalDetailByLogin for share BA and HR #99557
- [No QA] Skip no-op onboarding resetRoot to stop Safari history.replaceState burst #99314
- fix: enable enableEdgeToEdgeBottomSafeAreaPadding #97031
- Align ButtonComposed wrapper props (variant/buttonVariant/buttonSize) #99080
- Fix - International deposit account US flow skips the Plaid or manual choice after verification #99431
- fix: NitroSQLite not propagating native errors by upgrading Skia to 2.4.18 #99541
- Mobile-Expensify submodule update to
03bdee2— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14083 - Migrate HRSyncResultsModal to @react-navigation modal screen #97172
- Gate Vendors More features row on a supported integration and explain the lock #98845
- Duplicate one report per tick when bulk duplicating reports #99639
- [No QA] Document that Travel guest email must be unique across companies #99280
- Fix - Company cards verification always forwards to Add New, skipping feed and upgrade branches #99184
- [No QA] Fix - Add bank account forward path ignores shouldSetUpUSBankAccount #99729
- Migrated user's reports follow Classic approval workflow instead of New Expensify workflow #98120
- Fix workspace navigation after distance settings deep link #98423
- Format the copilot display name so a name-less SMS account loses its domain #97932
- Fix stale Add address CTA after saving home address #99834
- Mobile-Expensify submodule update to
ca9e1fc— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14087 - Mobile-Expensify submodule update to
c02d673— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14082 - [Commuter Mileage Exclusion] Fix guard modal image overlap #98571
- Add a "Then" section to the Flag for review rule editor #99655
- [No QA] Docs updates for E/A#96922 held-expense split and all-on-hold submit block #99026
- [No QA] feat: add account-size telemetry span attributes and database size measurement #99068
- Ignore third-party OnyxDB read rejections in Sentry #99819
- [No QA] stop syncing app data when the app comes to the foreground #98888
- [NoQA] HeaderWithBackButton migration - primitives introduction #98160
- [No QA] Normalize path in getPathFromState to fix AI Features Promo SecurityError #99040
- Fix gray fallback avatars on Workspace Members page #99589
- Fix layers ordering in GPSMapView #98891
- Hide receipt attachment actions when the parent conversation is read-only #97423
- [Payment due @marufsharifi] Show export status in one app-level modal instead of per screen #98521
- Mobile-Expensify submodule update to
9.4.64-1— Adhoc Build - [No QA] Log when the default report name is shown in the LHN #99916
- Mobile-Expensify submodule update to
9.4.64-2— Adhoc Build - Mobile-Expensify submodule update to
add6a10— Adhoc Build - [No QA] Docs updates for E/A#96364 broken card connection 90-day grace period #98930
- Mobile-Expensify submodule update to
9.4.64-3— Adhoc Build - Open money-request child reports in the wide RHP from X Replies #99165
- ReportActionAvatars — ReportAvatar dispatcher + reportID migration + GroupChatAvatar #99351
- Fix Home-Tapping disabled Send button with empty text removes focus and closes keypad #99750
- Refactor: migrate getCurrencySymbol to useCurrencyListActions hook (part 4) #99571
- Cleanup for Decompose Avatar component #99553
- [Payment due @hoangzinh] Add Paid by search filter UI, table column, sorting, and export #98326
- [No QA] refactor: remove unsafe assertions from deep replacement utility #98759
- fix: Fix displays on LHN when submit report having expense edit the amount higher than receipt #99303
- Refactor merchant validation into a shared getMerchantError for inline and normal edit flows #98154
- [No QA] Docs updates for E/A#97071 Show GL codes in category picker #98818
- Mobile-Expensify submodule update to
9.4.65-0— Adhoc Build - Fix asymmetric padding on the account switcher search field #99970
- Mobile-Expensify submodule update to
9.4.65-1— e43cddd - [CP Staging] Revert #98603: Copilot list search inputs #99983
- Mobile-Expensify submodule update to
9.4.65-2— 89f6f62 - [cp staging] Update Paid by column from live payment actions #99992
- Mobile-Expensify submodule update to
9.4.65-3— 643e2c8
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
melvin-bot commentedon Aug 31, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
melvin-bot commentedon Aug 31, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
francoisl commentedon Aug 31, 2026
#99961 - #99970: checking off, blocker fixed on staging by CP
m-natarajan commentedon Sep 1, 2026
Regression progress is at 51%
PRs Failing:
#98603 failed with #99974 and #99964
PRs Untested:
Multiple PRs pending validation across all platforms
#97031 (comment)
#98930 (comment)
https://github.com/Expensify/Mobile-Expensify/pull/14076#issuecomment-5483470576
izarutskaya commentedon Sep 1, 2026
Regression progress is at 91%
PRs Failing:
#98603 with #99974 on Web, with #99964 on iOS & Android
#98845 with #99986
#99165 with #98142
#99750 on Web with original issue #99569
PRs Untested:
#97031 (comment)
https://github.com/Expensify/Mobile-Expensify/pull/14076#issuecomment-5483470576
Multiple PRs pending validation:
2 Web | 11 Android | 12 iOS
izarutskaya commentedon Sep 1, 2026
Regression progress is at 98%
PRs Failing:
#98603 with #99974 on Web, with #99964 on iOS & Android
#98845 with #99986
#99165 with #98142
#99303 with #97647 on iOS
#99533 with #100006
#99750 on Web with original issue #99569 #99750 (comment)
PRs Untested:
#97031 (comment)
#98120 (comment)
#99303 - pending validation on Android
#99557 - pending validation on Android
https://github.com/Expensify/Mobile-Expensify/pull/14076 - pending validation on Android, iOS
https://github.com/Expensify/Mobile-Expensify/pull/14082 - pending validation on Android
izarutskaya commentedon Sep 1, 2026
Regression is completed
PRs Failing:
#98603 with #99974 on Web, with #99964 on iOS & Android
#98845 with #99986
#99165 with #98142
#99303 with #97647 on iOS Repro in prod, checking it off
#99533 with #100006
#99750 on Web with original issue #99569 #99750 (comment) Checking off according comment #99750 (comment)
PRs Untested:
#97031 (comment)
#98120 (comment)
https://github.com/Expensify/Mobile-Expensify/pull/14076 - pending validation on Android
Critical TCs that are failing:
Notifications with #98520
Critical Viral Path with #48727 & #98881
izarutskaya commentedon Sep 1, 2026
https://github.com/Expensify/Mobile-Expensify/pull/14076#issuecomment-5496679398 checked it off
francoisl commentedon Sep 1, 2026
#99974, #99972, #99964 - fixed by revert CP, checking off
#99968: fixed by CP, checking
#97031: pinged author for QA steps
#98120: switching to internal QA
https://github.com/Expensify/Mobile-Expensify/pull/14076#issuecomment-5496679398: checking based on comment
#99165: blocker fixed, checking
#99533: #100006 was demoted as NAB, checking
#97031: ran some of the tests myself, checking
francoisl commentedon Sep 2, 2026