Skip to content

Connections - RHP shows not here page briefly after disconnecting accounting #104319

Open

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


Version Number: 9.5.13-3
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

Action Performed:

Precondition:

  • Enable unifiedConnections beta.
  1. Go to staging.new.expensify.com
  2. Go to workspace settings > Connections.
  3. Connect to Sage Intacct.
  4. Click Sage Intacct.
  5. Click 3-dot menu > Disconnect > Disconnect.

Expected Result:

RHP will not show not here page after disconnecting accounting.

Actual Result:

RHP shows not here page briefly after disconnecting accounting.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7289499_1792308590712.1.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Julia Ponikarchuk
Bug ID: 7289499

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 18, 2026
  2. applause-bot commented on Oct 18, 2026

    @applause-bot
    Author

    While Applause doesn't embed attachments for this bug, here are the links for quick view:
    https://platform.applause.com/services/links/v1/external/fa2bdf7138288e04a9e15a1d0c6a543558515ca3f021aaac0ae012ec0e7a3610

  3. melvin-bot commented on Oct 18, 2026

    @melvin-bot

    @lakchote recently merged #102265, but they are OOO right now, so I'll auto-assign someone else.

  4. melvin-bot commented on Oct 18, 2026

    @melvin-bot

    Triggered auto assignment to @Beamanator (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

  5. github-actions commented on Oct 18, 2026

    @github-actions
    Contributor

    👋 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:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  6. melvin-bot commented on Oct 18, 2026

    @melvin-bot

    @lakchote @situchan you have been assigned to this deploy blocker because you reviewed the offending PR: #102265

  7. melvin-bot commented on Oct 18, 2026

    @melvin-bot

    @Krishna2323 you have been assigned to this deploy blocker because you authored the offending PR: #102265

  8. melvin-bot commented on Oct 18, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  9. MelvinBot commented on Oct 18, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR: Consolidate integration to one Connection screen (high confidence).

    Not a regression from this deploy. That PR shipped to production in Deploy Checklist: New Expensify 2026-10-14. It is hidden behind the unifiedConnections beta. None of the PRs in Deploy Checklist: New Expensify 2026-10-16 touch this code.

    Root cause: After you confirm the disconnect, the page starts closing the RHP and removes the connection in the same tick. The RHP stays mounted during its close animation. It re-renders with no connection, so its not-found check passes and shows the not-here page until the animation ends.

    Recommendation: Demote and fix forward. Do not revert. The bug is a brief visual flash in a beta feature, and the PR touches about 100 files. Run the removal in goBack's afterTransition callback instead of right away. DeleteGroupRow.tsx:59-61 already uses this pattern.

    Mechanism and fix details
    1. useConnectedAccountingIntegration.tsx:239-240 calls onDisconnectConfirmed?.() and then removePolicyConnection(...).
    2. ConnectionsAccountingPage.tsx:56 sets onDisconnectConfirmed to Navigation.goBack(...), which starts the close animation.
    3. actions/connections/index.ts:39-47 sets policy.connections[connectionName] to null in Onyx right away.
    4. ConnectionsAccountingPage.tsx:66: shouldBeBlocked becomes true because connectedIntegration is now undefined.
    5. AccessOrNotFoundWrapper.tsx:225-226 still allows the not-found page because the Workspaces tab stays focused. The closing RHP renders the not-here page.

    Suggested fix:

    // useConnectedAccountingIntegration.tsx
    onDisconnectConfirmed?: (disconnect: () => void) => void;
    // ...
    const disconnect = () => removePolicyConnection(policy, connectedIntegration);
    if (onDisconnectConfirmed) {
        onDisconnectConfirmed(disconnect);
        return;
    }
    disconnect();
    
    // ConnectionsAccountingPage.tsx
    onDisconnectConfirmed: (disconnect) => Navigation.goBack(ROUTES.WORKSPACE_CONNECTIONS.getRoute(policyID), {afterTransition: disconnect}),

    The legacy PolicyAccountingPage passes no callback, so its behavior does not change.

    Two sibling RHPs from the same PR use the same pattern. I did not reproduce either:

    • Uber: ConnectionsReceiptPartnersPage.tsx with useReceiptPartnersSettings.ts
    • HR and recruiting: ConnectionsMergePageBase.tsx with useMergeProviderCardDetails.tsx

    Apply the same fix to both.


    Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.


    view run

  10. lakchote commented on Oct 19, 2026

    @lakchote
    Contributor

    Demoting this. It only happens with the unifiedConnections beta on, and #102265 already went to production with the 10-14 deploy, so this deploy didn't cause it.

    @Krishna2323 can you fix it in a follow-up PR with the afterTransition change Melvin suggested above?

  11. added and removed
    DeployBlockerCashThis issue or pull request should block deployment
    on Oct 19, 2026
  12. Krishna2323 commented on Oct 20, 2026

    @Krishna2323
    Contributor

    PR is ready for review: #104402

    cc: @situchan @lakchote

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

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.EngineeringReviewingHas a PR in reviewWeeklyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions