Beginner to IntermediateGuide

How to Fix WalletConnect When the Connection Keeps Failing

WalletConnect not working? Learn why connections fail and how to fix QR, session, relay and network errors step by step.

By Niki

Immediate guidance: Usually a connection issue

Most WalletConnect failures are timing or leftover session problems, not wallet or blockchain problems. A refreshed QR code and a full session clean out fixes a large share of cases.

Never share a recovery phrase, private key, password, or two-factor code with anyone offering support.

How to Fix WalletConnect When the Connection Keeps Failing

Key Takeaways

  1. Most WalletConnect failures are timing or leftover session problems, not wallet or blockchain problems. A refreshed QR code and a full session clean out fixes a large share of cases.
  2. WalletConnect uses a WebSocket relay, so anything that blocks WebSocket traffic, such as a VPN, a corporate firewall or a strict browser extension, can stop the connection before the wallet ever sees a request.
  3. Never share a seed phrase or private key while troubleshooting. No legitimate connection fix ever requires it.

What WalletConnect Actually Does

WalletConnect is a messaging protocol. It is not a wallet, and it does not hold your funds. Its job is to carry encrypted messages between an application, often called a dApp, and the wallet where your keys live.

The flow has four steps:

  1. The application creates a pairing request and shows it as a QR code or a deep link.
  2. Your wallet reads that request and connects to the same relay server.
  3. The application sends a session proposal that lists the chains and permissions it wants.
  4. You approve or reject the proposal, and a session is created.

Once the session exists, signing requests travel through the relay, and your private keys never leave the wallet. That design is good for security, but the connection depends on several moving parts. When one of them fails, the user usually just sees a spinning loader.

Part of the chainWhat it doesCommon failure
Application sideBuilds the pairing link, holds the developer Project IDExpired QR code, misconfigured Project ID, outdated SDK
Wallet sideReads the link, approves the session, signs requestsOld app version, leftover sessions, unsupported chain
Relay serverPasses encrypted messages over a WebSocketBlocked by firewall, VPN, network filter or an outage
Device and browserDeep links, clipboard, local storageCache conflicts, blocked storage, app suspended in background

Start Here: The Five Minute Checklist

Work through this list in order before trying anything advanced. It solves most cases.

  1. Refresh the QR code. An inactive pairing expires after about five minutes, and a session proposal is stored for about five minutes as well. A QR code that has been sitting on screen while you looked for your phone is often already dead.
  2. Disconnect old sessions in the wallet. Look for a menu named Connected Apps, Connections, Sessions or WalletConnect. Remove every entry, including ones you no longer recognise.
  3. Update the wallet app and the browser. Wallet releases regularly include relay and session fixes.
  4. Reload the application page. Then try again in a private or incognito window to rule out cached state.
  5. Change the network. Switch from Wi-Fi to mobile data, or the other way around. If it suddenly works, the original network was blocking the relay.

If the connection still fails after all five steps, move to the symptom table below.


Fix by Symptom

SymptomMost likely causeWhat to try
QR code scans, then nothing happensSession proposal expired, or the wallet cannot reach the relayRefresh the QR code and scan within a few seconds, then test on another network
Wallet shows connected, the site still shows disconnectedLeftover session on one side onlyDisconnect on both sides, close the tab, reconnect from a fresh page load
An error mentioning an existing pairingThe same QR code was scanned twiceGenerate a new QR code and scan the new one
Connection drops when you switch apps on a phoneThe operating system suspended the wallet in the backgroundOpen the wallet immediately after tapping connect, and disable aggressive battery saving for the wallet app
Works at home, fails at the office or at schoolWebSocket traffic is filtered on that networkUse mobile data, or ask the network administrator about WebSocket access
Every dApp fails, on every deviceOutdated wallet build or a relay incidentUpdate the wallet, then check the wallet provider status page and support channels
Connects, but signing requests never arriveStale session or a chain mismatchDisconnect, switch the wallet to the network the application expects, then reconnect

How to Clear Ghost Sessions Properly

A ghost session is a connection record that one side still believes is active. It is the single most common cause of repeat failures.

In the wallet:

  1. Open settings and find the WalletConnect or Connected Apps section.
  2. Disconnect every listed application, not just the one that failed.
  3. Fully close the wallet app or lock and reopen the extension.

In the application:

  1. Use the Disconnect button in the site interface if one is offered.
  2. Reload the page.
  3. If the site still thinks you are connected, clear site data for that domain in the browser, then reload.

Important safety note: clearing browser site data is safe. Uninstalling or resetting a wallet extension is not, unless you have your recovery phrase stored securely offline. Never reset a wallet as a troubleshooting step.


Mobile Specific Problems

Mobile has its own failure patterns because two apps have to hand control back and forth.

  • Deep link does not open the wallet. Install the wallet app first, then reload the application page so the connect menu can detect it.
  • The wallet opens but returns you to the browser too early. Wait for the approval screen to load fully before switching apps.
  • The browser tab reloads while you approve. Mobile browsers unload background tabs to save memory. Keep the number of open tabs low during the connection.
  • Background restrictions. Battery optimisation and low power mode can suspend the wallet and close its relay socket. Disable optimisation for the wallet app during troubleshooting.
  • In-app browsers. Social media in-app browsers often block the storage and scripts that wallet connections need. Open the site in the system browser, or use the browser built into the wallet app instead.

Browser and Network Causes

WalletConnect depends on a WebSocket connection to a relay server. If that socket cannot open, nothing else in the flow can happen.

Check the following:

  • Ad blockers and privacy extensions. Strict blocking rules can stop the relay domain. Disable extensions for the site, then reload.
  • VPNs and proxies. Some VPN exit nodes and corporate proxies break long lived WebSocket connections. Turn the VPN off and test again.
  • Regional restrictions. Users in some regions have reported that relay endpoints are unreachable on certain networks. Testing on a different connection is the quickest way to confirm this.
  • HTTPS. Wallet connections expect a secure origin. A site served over plain HTTP will often fail silently.
  • Browser storage settings. Blocking all cookies and site data prevents the application from storing session state, so the connection appears to succeed and then vanishes on reload.

A quick diagnostic: open the browser developer console and look for a failed WebSocket request when you press Connect. If the socket never opens, the problem is the network, not the wallet.


When the Problem Is on the Application Side

If you build or operate a dApp, connection failures are often configuration issues rather than user error. Every project needs a Project ID, created in the developer dashboard, and that ID can be restricted by an origin allowlist. Requests from origins outside the allowlist are denied, and allowlist changes are documented as taking around fifteen minutes to apply.

Published relay error codes are useful when reading logs.

CodeMeaningTypical fix
401Project ID does not exist, or the token has expiredCheck the ID and the environment variable that supplies it
403The Project ID exists but is not valid for this requestReview the origin or bundle ID allowlist
1013Too many requestsReduce reconnect attempts and review rate limits
1001 (WebSocket close)Server is terminating the connectionReconnect
4008 (WebSocket close)Client is stale, connected without a subscriptionReconnect when needed
4010 (WebSocket close)Load rebalancingReconnect

Timing rules also matter, because many bug reports are simply expiry working as designed.

ItemDocumented lifetime
Inactive pairingAbout 5 minutes
Active pairingAbout 30 days
Session proposalAbout 5 minutes
Session request, default300 seconds, which is 5 minutes
Session request, maximum604,800 seconds, which is 7 days

One more historical point that still causes confusion: WalletConnect version 1 was shut down on 28 June 2023, so any integration or wallet build that still targets it cannot connect at all. The company behind the toolkits, formerly WalletConnect Inc., rebranded to Reown in September 2024, and older packages such as Web3Wallet and Web3Modal were deprecated in favour of the current wallet and application SDKs. Documentation has since been reorganised across the Reown and WalletConnect Network sites, so old tutorials may point to retired packages.


Safety Rules While Troubleshooting

Connection problems create urgency, and attackers use that.

  • No support agent, form, pop up or chat bot ever needs your seed phrase, private key or wallet password. Any request for one is theft.
  • Check the domain before approving anything. Phishing clones of popular applications frequently appear in search results and social posts.
  • Read the session proposal. If a simple site asks for permissions across many chains and accounts, reject it and reconnect from the official site.
  • Review token approvals periodically with a reputable approval checker, especially after connecting to unfamiliar applications.

When It Is Not WalletConnect At All

Sometimes the connection is fine and something else fails just after it.

  • Wrong network. The wallet is on one chain and the application expects another. Switch the network and reconnect.
  • RPC failure. The application's node provider is down, so balances do not load even though the wallet is connected.
  • Insufficient gas. A signing request appears but fails, which is a funding issue rather than a connection issue.
  • The application itself is broken. If the same wallet connects to other sites without trouble, the problem is on that one site.

Working through this guide in order, from expiry to sessions to network to configuration, is faster than guessing and usually ends with a stable connection.


FAQ

Why does my WalletConnect QR code keep expiring? An inactive pairing and a session proposal each last about five minutes by design. Refresh the code and scan it promptly. If it expires within seconds, the wallet or the application is probably failing to reach the relay.

Why does my wallet say it is connected when the site says it is not? That is a ghost session. One side kept a record the other side dropped. Disconnect on both sides, reload the page, and start a fresh connection.

Is WalletConnect down, or is it just me? Test the same wallet on a different application and a different network. If everything fails everywhere, check the wallet provider's status and support channels. If only one site fails, the issue is that site.

Does WalletConnect ever need my seed phrase? No. The protocol only passes encrypted messages between an application and a wallet. Keys never leave the wallet, and no legitimate troubleshooting step involves entering a recovery phrase.

Why do connections drop when I switch between apps on my phone? Mobile operating systems suspend background apps to save power, which can close the relay socket. Reopen the wallet quickly, and turn off battery optimisation for it while you connect.


  • Pairing: the initial encrypted link between an application and a wallet, created from a QR code or deep link.
  • Session: the approved connection that defines which chains, accounts and methods an application may use.
  • Relay: the server that forwards encrypted messages between the two sides without being able to read them.
  • Deep link: a link that opens a specific app or screen directly, used to move from a mobile browser to a wallet.
  • dApp: a decentralised application, meaning a website or app that interacts with smart contracts through your wallet.

Sources


More Reading

  1. Reown Docs, WalletKit Best Practices, for the full list of expected pairing and session errors and how wallets should handle them.
  2. WalletConnect Network Docs, Wallet SDK section, for current wallet side implementation guidance after the documentation move.
  3. Trust Wallet Support, Unable to Connect to a dApp with WalletConnect, for a worked example of a wallet specific troubleshooting flow.

Disclaimer: This article is educational and does not constitute financial, legal, or security advice. Wallet menus and settings change between versions, so confirm exact steps in your wallet's official help documentation.

Not sure which problem you have?

Use the Fixing Crypto Mistakes hub to identify the transaction, wallet, network, or exchange issue before taking another action.

OPEN TROUBLESHOOTING HUB

Share Transmission

Broadcast this signal to your network