Skip to content

Widget: Rabby silently reconnects after explicit disconnect + reload #12682

Open

Description

@0xApotheosis

Overview

Disconnecting Rabby from the AppKit account view and then refreshing the page brings the ETH address back in the header, as if the disconnect never happened. Reported from QA on the /developers embed in website-frontend; reproduces on https://widget.shapeshift.com, so it is widget/AppKit behaviour rather than the host integration.

References and additional details

The disconnect itself works: wallet_revokePermissions is sent, @appkit/connected_namespaces and eip155:connected_connector_id are cleared, and the header shows Connect. On reload, wagmi's EIP-6963 injected connector (@wagmi/core injected.js) sets up onAccountsChanged while probing; Rabby ignores wallet_revokePermissions and emits accountsChanged with the still-authorised account shortly after load (also on unlock), so onConnect fires and the connector auto-reconnects. The widget's config/appkit.ts doesn't set the <connectorId>.disconnected shim or pass enableInjected/reconnect options, so nothing stops it.

Repro on https://widget.shapeshift.com with Rabby:

  1. Connect Rabby. Header shows the address.
  2. Open the modal, Disconnect. Header shows Connect.
  3. Reload. Header shows the address again after a few seconds; no connect click required.

Control: a wallet that honours wallet_revokePermissions and doesn't emit accountsChanged on load stays disconnected after reload. Confirmed both cases with a mock provider under Playwright (IGNORE_REVOKE + delayed accountsChanged reproduces; without either it stays disconnected).

Acceptance Criteria

  • After an explicit disconnect, a page reload does not silently reconnect the previously connected EVM wallet, regardless of whether the wallet honours wallet_revokePermissions.
  • Reconnect still works for wallets that were not explicitly disconnected (normal session restore).
  • Verified against Rabby specifically, plus one wallet that honours revoke (e.g. MetaMask) to make sure the fix doesn't regress normal restore.

Need By Date

n/a

Estimated effort

Half a day

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions