You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Connections - Back button on Import page closes RHP after refreshing the page #104029
Version Number: 9.5.9-0 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#102265 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Mac 26.5 / Chrome App Component: Workspace Settings
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Causing PR:Consolidate integration to one Connection screen (Expensify/App#102265). The auto-assignment is correct. Confidence: high, based on code reading. I didn't reproduce it in a browser.
Recommendation: Fix forward, don't revert. The PR touches 118 files and many commits have landed on top of it. The bug only affects the unifiedConnections beta and only appears after a refresh.
Root cause: The PR moved integration settings into an RHP screen (WORKSPACE_CONNECTIONS_ACCOUNTING). Import is still a static route under workspaces/:policyID/accounting/sage-intacct/import. After a refresh, the RHP stack is rebuilt with only the Import screen. SageIntacctImportPage.tsx:74-84 passes no back handler. The bare Navigation.goBack() therefore closes the RHP.
Recommended fix: Give these pages an explicit back route using the existing beta-aware helper getAccountingSettingsRoute:
goBack(route) pops to the route when it's already in the stack. Otherwise it replaces the current screen with that route. With the beta off, the helper returns POLICY_ACCOUNTING, so current behavior is kept.
On refresh, static RHP routes rebuild only the full-screen page underneath (getAdaptedStateFromPath.ts:140-148). Only dynamic routes restore parent RHP screens (getDynamicRouteAdaptedState.ts:78-116). The PR added CONNECTIONS_ACCOUNTING as a parent only for dynamic sub-routes such as Export, so Export likely survives a refresh and Import doesn't.
Before the PR, closing the RHP showed the Accounting page, which was the correct parent. The PR also changed SageIntacctAdvancedPage.tsx:111 from goBack(ROUTES.POLICY_ACCOUNTING...) to a bare goBack(). Advanced most likely has the same bug.
Scope: Other static first-level sub-pages opened from integration settings most likely behave the same way. These include Import, Advanced, and card reconciliation for QBO, Xero, NetSuite, QBD, Certinia, Rillet, and DualEntry. Apply the fix to all of them.
Longer term: Convert these pages to dynamic routes with CONNECTIONS_ACCOUNTING as the parent, as the PR already did for Export.
I found no later commit on main and no open PR that fixes this.
Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.
Activity
applause-bot commentedon Oct 14, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/29f04fce80917ed18ede4f4004349c064e294979c3a0b120564c63493bcfc07b
melvin-bot commentedon Oct 14, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #102265
github-actions commentedon Oct 14, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
melvin-bot commentedon Oct 14, 2026
@lakchote @situchan you have been assigned to this deploy blocker because you reviewed the offending PR: #102265
melvin-bot commentedon Oct 14, 2026
@Krishna2323 you have been assigned to this deploy blocker because you authored the offending PR: #102265
melvin-bot commentedon Oct 14, 2026
💬 A slack conversation has been started in #expensify-open-source
MelvinBot commentedon Oct 14, 2026
Deploy Blocker Investigation
Causing PR: Consolidate integration to one Connection screen (
Expensify/App#102265). The auto-assignment is correct. Confidence: high, based on code reading. I didn't reproduce it in a browser.Recommendation: Fix forward, don't revert. The PR touches 118 files and many commits have landed on top of it. The bug only affects the
unifiedConnectionsbeta and only appears after a refresh.Root cause: The PR moved integration settings into an RHP screen (
WORKSPACE_CONNECTIONS_ACCOUNTING). Import is still a static route underworkspaces/:policyID/accounting/sage-intacct/import. After a refresh, the RHP stack is rebuilt with only the Import screen.SageIntacctImportPage.tsx:74-84passes no back handler. The bareNavigation.goBack()therefore closes the RHP.Recommended fix: Give these pages an explicit back route using the existing beta-aware helper
getAccountingSettingsRoute:goBack(route)pops to the route when it's already in the stack. Otherwise it replaces the current screen with that route. With the beta off, the helper returnsPOLICY_ACCOUNTING, so current behavior is kept.Investigation details
WORKSPACE_CONNECTIONS_ACCOUNTING(useAccountingConnectionListings.ts:149). The route is registered as an RHP screen (ModalStackNavigators/index.tsx:447).accounting/utils.tsx:370,ROUTES.ts:4956-4959).getAdaptedStateFromPath.ts:140-148). Only dynamic routes restore parent RHP screens (getDynamicRouteAdaptedState.ts:78-116). The PR addedCONNECTIONS_ACCOUNTINGas a parent only for dynamic sub-routes such as Export, so Export likely survives a refresh and Import doesn't.ConnectionLayout.tsx:102. The fallback behavior ofgoBack(route)is inNavigation.ts:497-502.SageIntacctAdvancedPage.tsx:111fromgoBack(ROUTES.POLICY_ACCOUNTING...)to a baregoBack(). Advanced most likely has the same bug.CONNECTIONS_ACCOUNTINGas the parent, as the PR already did for Export.mainand no open PR that fixes this.Next Steps: Reply with
@MelvinBot implement thisto create a draft PR, or@MelvinBot <your feedback>to refine this analysis.view run
lakchote commentedon Oct 15, 2026
Behind beta, demoting
lakchote commentedon Oct 19, 2026
@Krishna2323 are you picking this up as a follow-up to #102265?
Krishna2323 commentedon Oct 20, 2026
PR is ready for review: #104402
cc: @situchan @lakchote