Repository navigation
Deploy Checklist: New Expensify 2026-09-30 #102590
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.99-2
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:
- [Payment due @huult] Display SearchForReports results in proper tiers order #94362
- refactor: remove unsafe assertions from deployment tooling, Airship mocks, and FlatList #98877
- Remove unsafe assertions from useGeographicalStateAndCountryFromRoute #100001
- Add Sign out escape hatch to required 2FA overlay #100077
- Add a server selection page (part 2/5) #100209
- [No QA] Docs updates for E/A#99516 Book travel now available from Search #100223
- [Payment due @truph01] Add Auto-categorize new expenses workspace setting to let strict admins disable auto-categorization" #100248
- feat: use floating RHP style on web #101093
- refactor: extract transaction selection and pending expense hooks, finish wiring #101202
- Show a reconnect warning when the QBO refresh token is about to expire #101273
- Move pre-selected item to top on Workflows pickers (day-of-month & payer) #101313
- Fix bulk-edit tag deselect clearing untouched tag levels #101460
- Show Reject action to workspace admins, not just the report manager #101503
- Keep table search and filters fixed while columns scroll horizontally #101564
- [No QA] Docs updates for E/A#101080 clarify distance rate behavior when moving expenses between workspaces #101619
- Resolve the member's own policy role when checking room member removal #101643
- Hide Request limit increase from admins when the settlement account is connected with Plaid #101657
- [Payment due @brunovjk] Fix empty notification preferences in admin rooms #101664
- [No QA] Compress web bundles with Brotli #101730
- Update the global RBR and GBR text colors #101735
- [No QA] Use the OXC React Compiler for Jest #102081
-
MenuItemdecomposition - html value #102170 - [Payment due @hoangzinh] Handle Default workflow changes correctly #102189
- Group agent rule suggestions under collapsible help-article sections #102244
- [No QA] Add XERO45 export error article #102255
- Docs updates for E/A#102019 USD beneficial owners enter last four SSN digits #102301
- [Payment due @mkhutornyi] Tell non-Control workspaces that auto-pay approved reports requires the Control plan #102338
- Refresh Home data with OpenHomePage #102341
- Queue CompleteGuidedSetup when offline during web onboarding #102344
- Remove TranslateLocal in
src/libs/OptionsListUtils/searchMatchUtils.ts#102362 - [Refactor] Move buildOptimisticTransaction and getUpdatedTransaction out of TransactionUtils/index.ts #102398
- [No QA] Add DynamicReportDetailsPage perf test #102401
- Stop Search from firing twice on cached revisit #102409
- Update websocket-driver to 0.7.5 #102417
- [No QA] Update help docs for Release 1: Greenhouse and Classic Parity #102428
- [No QA] Normalize detected timezone before returning it #102439
- [No QA] Update ChatGPT MCP help article to say plugin instead of connector #102449
- [No QA] Update PERFORMANCE.md #102450
- [No QA] Docs updates for E/A#102242 Add Tag column to personal card spreadsheet import #102465
- fix Onboarding - Accounting tiles show 1 column after rotating to portrait #102486
- [No QA] Rename title from 'Expensify Help' to 'ExpensifyHelp' #102497
- [No QA] Add files via upload #102499
- Gate the Search optimistic watch key on a pending write #102505
- [Payment due @eh2077] Properly add members back to default workflow when removed from other workflows #102527
- [No QA] Align Greenhouse help article with HelpDot authoring rules #102536
- [No QA] Fix SearchAutocompleteList typecheck after merge race #102567
- [CP stag] Hide Automatic category when auto-categorize is off #102606
- [CP Staging] fix: let multiline list subtitles use the full row width #102628
- [CP Staging] fix: Floating RHP closes when clicking the top of the card #102638
Mobile-Expensify PRs:
- https://github.com/Expensify/Mobile-Expensify/pull/14144
- https://github.com/Expensify/Mobile-Expensify/pull/14148
Internal QA:
Deploy Blockers:
- [Due for payment 2026-10-07] Expense - Automatic is shown on Category row when Auto-categorize new expenses is disabled #102603
- [Due for payment 2026-10-14] Analyzing is incorrectly shown after creating expense and enabling auto categorizing offline #102604
- 2FA - No "Are you sure?" modal when signing out from required 2FA overlay #102609
- [Due for payment 2026-10-07] Expensify Card - Smart Limit description is shown in two lines when there is extra space #102610
- [$175] Split-When splitting second expense in group, Amount field gets overlapped #102615
- Task - Description with morethan 100 characters is not truncated. #102618
- [Due for payment 2026-10-09] Android - Home - "Spend over time" section loads infinitelly after expense creation. #102619
- [Due for payment 2026-10-07] Expense - Floating RHP closes after clicking on the top area within the RHP #102622
- [Due for payment 2026-10-14] Tags - Importing independent multi level tags loads infinitely. #102623
- [Due for payment 2026-10-20] [$175] Workspace - Auditor reappears after removing from workspace chat and refreshing member page #102680
- [Due for payment 2026-10-26] [$175] Expense - IOU receiver can remove IOU sender from member list #102682
Chronologically ordered merged PRs (oldest first)
- [No QA] Update help docs for Release 1: Greenhouse and Classic Parity #102428
- [No QA] Add XERO45 export error article #102255
- [No QA] Update PERFORMANCE.md #102450
- Hide Request limit increase from admins when the settlement account is connected with Plaid #101657
- Update websocket-driver to 0.7.5 #102417
- [No QA] Docs updates for E/A#101080 clarify distance rate behavior when moving expenses between workspaces #101619
- [No QA] Add files via upload #102499
- [Refactor] Move buildOptimisticTransaction and getUpdatedTransaction out of TransactionUtils/index.ts #102398
- [No QA] Normalize detected timezone before returning it #102439
- Docs updates for E/A#102019 USD beneficial owners enter last four SSN digits #102301
- [No QA] Add DynamicReportDetailsPage perf test #102401
- [Payment due @brunovjk] Fix empty notification preferences in admin rooms #101664
- [No QA] Docs updates for E/A#102242 Add Tag column to personal card spreadsheet import #102465
- feat: use floating RHP style on web #101093
MenuItemdecomposition - html value #102170- [No QA] Rename title from 'Expensify Help' to 'ExpensifyHelp' #102497
- Keep table search and filters fixed while columns scroll horizontally #101564
- [No QA] Use the OXC React Compiler for Jest #102081
- Mobile-Expensify submodule update to
610e8a5— Adhoc Build
↳ https://github.com/Expensify/Mobile-Expensify/pull/14144 - [Payment due @mkhutornyi] Tell non-Control workspaces that auto-pay approved reports requires the Control plan #102338
- Queue CompleteGuidedSetup when offline during web onboarding #102344
- [Payment due @hoangzinh] Handle Default workflow changes correctly #102189
- Group agent rule suggestions under collapsible help-article sections #102244
- fix Onboarding - Accounting tiles show 1 column after rotating to portrait #102486
- Add a server selection page (part 2/5) #100209
- Update the global RBR and GBR text colors #101735
- refactor: extract transaction selection and pending expense hooks, finish wiring #101202
- Stop Search from firing twice on cached revisit #102409
- [Payment due @huult] Display SearchForReports results in proper tiers order #94362
- Mobile-Expensify submodule update to
9.4.95-1— Adhoc Build - Remove TranslateLocal in
src/libs/OptionsListUtils/searchMatchUtils.ts#102362 - [Payment due @truph01] Add Auto-categorize new expenses workspace setting to let strict admins disable auto-categorization" #100248
- [No QA] Fix SearchAutocompleteList typecheck after merge race #102567
- Show Reject action to workspace admins, not just the report manager #101503
- Add Sign out escape hatch to required 2FA overlay #100077
- Fix bulk-edit tag deselect clearing untouched tag levels #101460
- [Payment due @eh2077] Properly add members back to default workflow when removed from other workflows #102527
- Gate the Search optimistic watch key on a pending write #102505
- Remove unsafe assertions from useGeographicalStateAndCountryFromRoute #100001
- [No QA] Compress web bundles with Brotli #101730
- refactor: remove unsafe assertions from deployment tooling, Airship mocks, and FlatList #98877
- Show a reconnect warning when the QBO refresh token is about to expire #101273
- [No QA] Update ChatGPT MCP help article to say plugin instead of connector #102449
- [No QA] Docs updates for E/A#99516 Book travel now available from Search #100223
- Mobile-Expensify submodule update to
9.4.95-2— Adhoc Build - Resolve the member's own policy role when checking room member removal #101643
- Refresh Home data with OpenHomePage #102341
- Move pre-selected item to top on Workflows pickers (day-of-month & payer) #101313
- Mobile-Expensify submodule update to
9.4.95-3— Adhoc Build - [No QA] Align Greenhouse help article with HelpDot authoring rules #102536
- Mobile-Expensify submodule update to
9.4.95-4— Adhoc Build - Mobile-Expensify submodule update to
9.4.96-0— Adhoc Build - Mobile-Expensify submodule update to
9.4.97-0— c318e93 - [CP Staging] fix: let multiline list subtitles use the full row width #102628
- Mobile-Expensify submodule update to
9.4.97-1— 5ae2ff9 - Mobile-Expensify submodule update to
9.4.97-2— 9753d56 - [CP Staging] fix: Floating RHP closes when clicking the top of the card #102638
- [CP Staging + Prod]Prevent Home page crashes from missing rail passenger IDs #102646
- Mobile-Expensify submodule update to
9.4.97-3— 829440e - Mobile-Expensify submodule update to
9.4.99-0— 788b3fb - Mobile-Expensify submodule update to
9.4.99-1— c013342
↳ https://github.com/Expensify/Mobile-Expensify/pull/14148 - Mobile-Expensify submodule update to
include cherry-picked PR #14148— d4922d2 - Mobile-Expensify submodule update to
9.4.99-2— d98c167 - [CP stag] Hide Automatic category when auto-categorize is off #102606
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
Assignees
Labels
DailyKSv2KSv2StagingDeployCash🔐 LockCashDeploys 🔐Prevent new code from being deployed to stagingPrevent new code from being deployed to staging
Activity
melvin-bot commentedon Sep 30, 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.
m-natarajan commentedon Sep 30, 2026
Regression progress is at 52%
PRs Failing:
#94362 on Android | on iOS
#100001 on Web
#100077 with #102609
#100248 with #102604 and #102607
#101564 with #102613 (Repro in Prod)
#102170 with #102618
#102362 on Android
PRs Untested:
Several still pending validation: Web 1 | Android 3 | iOS 5
melvin-bot commentedon Sep 30, 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.
m-natarajan commentedon Sep 30, 2026
Regression progress is at 90%
PRs Failing:
#100001 with #102630 (Repro in Prod)
#100077 with #102609
#100248 with #102604 and #102607
#101564 with #102613 (Repro in Prod)
#102170 with #102618
#102362 on Android
PRs Untested:
Several still pending validation: Web 1 | Android 2 | iOS 3
#102301 (comment)
#102499 (comment)
m-natarajan commentedon Sep 30, 2026
Regression completed
PRs Failing:
#100001 with #102630 (Repro in Prod)
#100077 with #102609
#100248 with #102604 and #102607
#101564 with #102613 (Repro in Prod)
#102170 with #102618
#102362 with #102648 and #102649 (Repro in Prod)
PRs Untested:
#101657 (comment)
#102499 (comment)
tgolen commentedon Sep 30, 2026
Demoting #102609
Julesssss commentedon Sep 30, 2026
melvin-bot commentedon Sep 30, 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.
jasperhuangg commentedon Sep 30, 2026
demoting #102604
marcochavezf commentedon Sep 30, 2026
Checked off #101657 since it adds an optional backend flag to the existing Plaid check and doesn't cause a regression
Julesssss commentedon Sep 30, 2026
Checking off two remaining blockers as fixed
Julesssss commentedon Sep 30, 2026