Okay, picture this: you're swapping some ETH for USDC on Uniswap, hit confirm, and boom-MetaMask shows "pending." Five minutes pass. Ten. An hour later? Still pending. Funds locked, can't do jack. Sound familiar? Happened to me last week on Arbitrum during a gas spike. The thing is, networks like Ethereum get clogged, low gas means your tx sits in limbo, and MetaMask's queue backs up. But don't panic. You can fix it. Usually in under 10 minutes.
I usually start with the easy stuff. Close your browser, reopen, unlock MetaMask. On mobile? Force quit the app. Half the time, that's it-transaction was just local, not broadcast. Why does this work? MetaMask sometimes glitches on its mempool view. But if it's really stuck on the blockchain? Time for the big guns.
Before you touch anything, grab your transaction hash. That's the long string of letters/numbers when you click the pending tx in MetaMask's Activity tab. Copy it.
Now head to activity.metamask.io. Paste the hash, pick your network-like Ethereum or Polygon-and hit View. It'll scan Etherscan or whatever explorer, tell you if it's pending, failed, or what. Super handy. In my experience, it spits out exact next steps, like "speed up" or "cancel." If it's failed already, check for "out of gas"-that's when your gas limit was too low, like under 200k for a simple swap when network needs 500k+.
Pro tip: If nothing shows on the explorer? It's local only. Reset by locking/unlocking. Done.
Look at that pending tx in MetaMask. See "Cancel"? Tap it. Boom, sends a replacement tx with same nonce (that's the tx ID number) but higher gas. Miners grab the new one, old one drops. Costs a bit extra gas, like 0.001 ETH on a busy day, but frees your queue.
But sometimes it 404s. Network ignored it. Or multiple pendings blocking. That's when custom nonce saves the day. Honestly, I do this 80% of the time now.
This overwrites stuck txes. Nonce is-wallets send txes in order, like nonce 5, then 6. If 5's stuck, 6 won't go. Trick? Send a new tx with same nonce, way higher gas. Old one vanishes.
First, enable it. Kinda hidden.
Now find the stuck nonce. In MetaMask Activity tab, click the pending tx. Note the Nonce: say it's 42. Or check Etherscan: youraddress.ethscan.io, find pending tx, scroll to Nonce.
What's next? Send to self.
Wait 1-2 blocks (30-60 secs on ETH). Refresh Activity. Gone? Sweet. Still orange? Bump gas higher next try, like double priority fee. Works on BSC, Polygon too-same process, check chain specific gas trackers.
In my experience, fees run ~0.0005-0.005 ETH total for cancel, depending on network chaos. Cheaper than waiting days.
Multiple pendings? Work backwards. Oldest first (lowest nonce). Cancel nonce 10 before 11. Can't skip-blockchain rule. If same nonce duplicates? Cancel one kills all.
On mobile? Slightly diff. Confirmation screen: tap gas bar > Advanced options. Set gas limit same/higher as original (e.g. 300k), priority fee +10% (35 gwei), max fee +30% (200 gwei). Nonce edit pops after amount/recipient.
| Situation | Gas Tweak | Example Numbers |
|---|---|---|
| Simple transfer | Priority +20%, max +30% | Orig: 20/150 → New: 25/200 gwei |
| Swap/DeFi | Gas limit x1.5, fees +50% | Orig: 400k gas/30pri → New: 600k/45pri |
| High congestion | Double everything | 100+ gwei priority, check tracker |
See? Match your case. Gas limit too low originally? That's why swaps fail-MetaMask estimates conservative, say 210k, but Uniswap needs 500k sometimes. Next time, always advanced edit.
Tx failed red? Hover exclamation. "Out of gas"? Gas limit too low. Retry with higher-edit to 1-4 million units for complex stuff. I once set 4M on a Beefy vault, used 2.2M, worked fine. Extra gas? Only pay what it uses.
"Execution reverted"? Smart contract said no-maybe low balance, paused pool, or bad slippage. Check dApp logs. No native token for fees? Obvious fix: bridge/buy ETH.
Not enough funds? Wallet shows balance, but subtract pending gas. Say 0.1 ETH, two pendings reserving 0.05 each? You're broke till cleared.
Before sending:
Networks matter. ETH mainnet worst for spikes-20 gwei idle, 200+ pumps. Layer 2s like Optimism? 0.001 gwei, rarely sticks. But same fixes apply.
Seriously, only if MetaMask support says so via activity.metamask.io feedback or their help desk. Resets clears all activity/nonce data-wipes history, unstucks everything. But loses local tx view. Do it post support confirmation, and only if tx invisible on explorer.
Steps if greenlit:
Don't confuse with wallet reset-that nukes everything, back to install day. Wrong move.
Congestion. Miners prioritize high gas bids. Your 10 gwei tx? Bottom of pile. EIP-1559 changed it-now priority fee + base, but same idea. During bull runs? Nightmare. Wait it out if small, or cancel if urgent.
I've lost hours to this, but now? Nonce trick every time. Saved my ass on a 5 ETH bridge once. You got this. Next pending? Hit these steps, tell me if it worked.
One more: Failed approvals? Common on DeFi. Revoke via revokes.cryptotoolkit or Etherscan, then retry with higher gas. Permissions stick if low gas reverted mid approve.
Polygon? Gas dirt cheap, k limit usually fine, 0.1 gwei. But MATIC needed.
BSC: Similar, BNB fees ~0.0001. Custom nonce same.
Arbitrum/Optimism: L2s faster, but if stuck, check their explorers (arbiscan, optimism.etherscan). Gas in ETH still, tiny amounts like 0.0001.
Cross chain? Bridges queue up. Cancel bridge tx, retry.
Honestly, after first fix, you'll spot pendings coming. Gas up front, never lowball.