Why Your MetaMask Isn’t Connecting

Why Your MetaMask Isn’t Connecting (Fix)

MetaMask connection issues usually come down to network misconfig, stale site permissions, RPC outages, extension conflicts, or hardware-wallet bridges. This guide gives a practical, step-by-step decision tree for browser and mobile, plus deep fixes for Ledger/Trezor, L2s (Base, Arbitrum, Optimism, Polygon, zkSync), and common JSON-RPC errors.

Beginner → Intermediate Troubleshooting • ~20–30 min read • Updated: 2025-11-13
TL;DR Try these in order: (1) reload the dapp tab, (2) open MetaMask and switch network to the correct chain, (3) disconnect & re-connect the site (Permissions → Connected sites), (4) clear Site data for the dapp origin, (5) test another reputable RPC for that network, (6) disable conflicting extensions or use a fresh browser profile, (7) for Ledger/Trezor: check “blind signing/WebHID/Bridge,” (8) if nonce stuck: Advanced → Reset account (does not remove assets), (9) on mobile: ensure WalletConnect QR/session is fresh, allow camera and local network permissions.

1) Identify Your Symptom

Symptoms (Browser)

  • “Connect wallet” button does nothing / spinner forever
  • MetaMask pop-up never appears or appears then disappears
  • Wrong network error (e.g., “Please switch to Base”)
  • Transactions fail instantly or stay pending forever
  • Ledger/Trezor stuck on “Looking for device”

Symptoms (Mobile)

  • WalletConnect QR accepted but no session appears
  • “Unable to establish secure connection”
  • App freezes on approve/sign screens
  • Push notifications for signatures don’t arrive

2) Decision Tree: Quick Wins First

MetaMask Not Connecting — Decision Tree 1) Refresh dapp + open MetaMask 2) Switch to correct network 3) Disconnect/reconnect site 4) Clear site data for the dapp 5) Try alternate RPC endpoint 6) Disable conflicting extensions 7) New browser profile / InPrivate 8) Reset account (nonce cache) 9) Hardware wallet checks 10) WalletConnect (mobile) refresh 11) Check system clock & firewall 12) Try another device quickly

Work left-to-right, top-to-bottom. If a step fixes the issue, stop there and note the cause for next time.

3) Top Root Causes & Exact Fixes

Root CauseHow to ConfirmFix
Wrong network selected Dapp UI says “Switch to X network,” Basescan link doesn’t match Open MetaMask → network dropdown → choose correct chain. If missing, add chain params (see L2 section).
Stale site permission Dapp keeps prompting connect but doesn’t show accounts MetaMask → three dots → Connected sites → Disconnect dapp. On the dapp, click “Connect” again and approve.
Corrupted local site data Only that site fails; others work; incognito works Browser address bar → padlock → Site settingsClear data. Then reload and reconnect.
RPC outage/ratelimit Console shows 429/5xx from your RPC; curl to endpoint fails Swap to another reputable RPC (temporary). See RPC Diagnostics.
Extension conflict Competing wallet extensions (OKX, Coinbase Wallet, Phantom) installed Disable all but MetaMask; or pick a fresh browser profile used only for wallet work.
Privacy/cookie blocking Brave shields/Firefox Enhanced Tracking blocks popups/third-party storage Temporarily lower shields for the site; allow pop-ups; add exception for chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn host (MetaMask).
Nonce/account state stuck Pending tx forever, “replacement transaction underpriced,” “nonce too low” MetaMask → Settings → Advanced → Reset account (does not remove funds). Then resend with a higher fee.
Clock skew Requests signed “in the future/past,” WalletConnect handshakes fail Set OS time to automatic network time (NTP). Reboot.
Corporate/firewall/VPN WebSockets blocked; only home network works Disable VPN/switch network; allow wss:// to RPC domains; use HTTPS fallback RPC.

4) Hardware Wallets: Ledger & Trezor

Ledger checklist

  • Update Ledger Live & device firmware
  • Open the Ethereum app on the device
  • Settings → Blind signing: Enabled (for many dapps)
  • Browser connection: prefer WebHID in Chromium-based browsers
  • Close Ledger Live (it can lock the USB transport)
  • Use short, direct USB-C cable; avoid hubs

Trezor checklist

  • Install/update Trezor Suite
  • Trezor Bridge running & up-to-date
  • Allow browser to access USB device (permission prompt)
  • In MetaMask, re-add the Trezor account if path changed
  • Close competing apps that might occupy the bridge

Never export your seed or type it anywhere online to “fix” connection issues. If a site asks for seed, it’s a phish.

5) Popular L2s/Alt L1s: Correct Chain Params

If a dapp says “Switch to X” but MetaMask doesn’t have it, add the network with exact parameters. (Prefer official docs.)

NetworkChain IDCurrencyRPC (example)Explorer
Base Mainnet 8453 ETH https://mainnet.base.org (or provider) basescan.org
Base Sepolia 84532 ETH (test) https://sepolia.base.org sepolia.basescan.org
Arbitrum One 42161 ETH https://arb1.arbitrum.io/rpc arbiscan.io
Optimism 10 ETH https://mainnet.optimism.io optimistic.etherscan.io
Polygon PoS 137 MATIC https://polygon-rpc.com polygonscan.com
zkSync Era 324 ETH https://mainnet.era.zksync.io explorer.zksync.io
BNB Smart Chain 56 BNB https://bsc-dataseed.binance.org bscscan.com
Avalanche C-Chain 43114 AVAX https://api.avax.network/ext/bc/C/rpc snowtrace.io

Use the dapp’s official docs first. Chain aggregators (e.g., Chainlist) are convenient but always verify entries match official sources.

6) RPC Diagnostics (Quick Tests)

If you suspect the RPC, ping it directly. Replace the URL with your endpoint:

# Get chain ID
curl -s -X POST https://mainnet.base.org \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

# Get latest block number
curl -s -X POST https://arb1.arbitrum.io/rpc \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

If these hang or return errors (429, 5xx), switch to another reputable RPC or your provider’s secondary endpoint. Many providers publish status pages and maintenance windows—check them when you see widespread failures.

7) Browser & Extension Conflicts

Fixes

  • Disable other wallet extensions (OKX, Coinbase Wallet, Phantom)
  • Disable popup blockers just for the dapp
  • Try a fresh Chrome/Edge/Brave profile used only for crypto
  • Lower aggressive “Shields” or Tracking Protection for the dapp

MetaMask settings worth knowing

  • Advanced → Reset account (nonce cache)
  • Security & Privacy → Clear activity tab data
  • Experimental → Connections (check origin permissions)

8) MetaMask Mobile & WalletConnect

  • Update MetaMask app via App Store/Google Play
  • Allow camera permission (for QR) and Local Network permission (iOS)
  • Open MetaMask → WalletConnect → New Session → scan the dapp’s fresh QR
  • Kill old sessions inside MetaMask to avoid conflicts
  • On iOS Low Power Mode can pause background tasks; keep the app active during signing

9) Decode Common JSON-RPC Errors

Error MessageMeaningFix
“Chain ID mismatch” Network says you’re on chain A but dapp expects chain B Switch networks in MetaMask; verify chain params
“Nonce too low / replacement transaction underpriced” Pending tx with same nonce; new gas not attractive enough Speed up with higher fee or cancel with 0-value self-tx; if still stuck → Reset account
“insufficient funds for gas * price + value” Account lacks enough native token for gas Bridge or transfer a small amount of the native token (ETH/AVAX/BNB/MATIC) to cover fees
“Internal JSON-RPC error” Generic provider error (rate limits, upstream glitch) Retry with alternate RPC; check provider status; reload site
“User rejected the request.” You closed the signature or denied connection Re-initiate and approve; ensure pop-ups are allowed
“execution reverted” Contract logic reverted (slippage, require(), insufficient allowance) Increase slippage/deadline, approve token, or correct params; simulate before sending

10) Privacy, Firewalls, VPNs, and System Time

  • Disable strict VPN/enterprise proxies that block wss:// or throttle to RPC domains
  • Allow list your RPC and explorer domains
  • Sync your OS clock to automatic time (NTP). Many auth flows fail with skewed time
  • If on hotel/captive Wi-Fi portals, fully complete the portal handshake before opening the dapp

11) Safety: Don’t “Fix” by Exposing Your Seed

Red flags: Any site, “support agent,” or bot asking for your seed phrase, remote desktop, or to “import” keys to resolve a connection issue. That’s a theft attempt.
  • Only use the official MetaMask extension/app from known stores
  • Bookmark official dapps; beware sponsored search results
  • Prefer hardware wallets for significant funds
  • Review and prune token/NFT approvals monthly (Revoke tools)

12) One-Page Checklist (Print-worthy)

☐ Reload dapp tab and open MetaMask window
☐ Switch MetaMask to the chain the dapp expects (verify chain ID)
☐ Disconnect site in MetaMask → reconnect from the dapp
☐ Clear the dapp’s site data (cookies/local storage), then reload
☐ Try a second reputable RPC for that network
☐ Disable all other wallet/extensions; try a fresh browser profile
☐ MetaMask → Settings → Advanced → Reset account (nonce)
☐ Hardware wallet: firmware/app up to date, Blind Signing ON, WebHID/Bridge OK
☐ Mobile: new WalletConnect session, app permissions allowed
☐ System: clock auto-sync, firewall/VPN not blocking websockets
☐ Still broken? Try another device/network to isolate the variable

13) FAQ

Does “Reset account” erase my assets?

No. It clears local transaction history/nonce tracking in MetaMask. Your balances live on-chain.

Can I safely use multiple wallet extensions?

It’s possible, but they often compete for window.ethereum. Keep only one enabled in your “crypto profile.”

Why does the dapp say I’m connected but shows 0 balance?

You’re likely on the wrong network or wrong account. Switch to the correct chain/account; refresh.

My tx is pending forever—what now?

Speed up (same nonce, higher fee) or cancel with a 0-ETH self-transfer at a higher fee. If stuck, Reset account and resend.

How do I know if an RPC is down?

Open browser dev tools Network tab, check responses. Run curl tests from RPC Diagnostics. Providers often have status pages.

14) External Resources & Official Docs

Still stuck? We can help diagnose RPC issues, extension conflicts, or hardware-wallet bridges in a 15-minute screen-share.

Get a Quick Fix Session →