A transaction submitted through MetaMask shows “pending” for hours. The user checks the blockchain explorer and sees nothing. They refresh the extension, close the browser, check their balance again—the funds are still gone from the wallet, but the transaction never appeared on-chain. This is one of the most common frustrations in self-custodial crypto management. It is not usually a loss of funds, but rather a breakdown in the submission or confirmation pipeline that leaves the user uncertain whether to wait, retry, or take action.
MetaMask's browser extension simplifies access to decentralized applications and token management, but that simplicity masks complexity underneath. A transaction can fail at several stages: creation, signing, broadcast, mempool acceptance, or blockchain confirmation. Each stage has different causes, different diagnostic signals, and different remedies. Understanding which stage has failed is the first step toward recovery, and it requires knowing where to look and what the signals mean.
Identifying where a transaction has stalled
The first diagnostic step is to determine whether the transaction reached the blockchain at all. Open the MetaMask wallet extension, locate the transaction in the activity history, and click it to view the full record. Look for a transaction hash—a long string of characters beginning with “0x”. If the hash exists and is clickable, the transaction was broadcast to the network. If it shows only “pending” with no hash after several minutes, the transaction never left your device.
A transaction without a hash usually indicates a submission failure before broadcast. Common causes include network errors (the browser lost connection to the RPC provider), incorrect gas settings that the network rejected, or a signature that did not complete. Check your internet connection, verify that the correct network is selected in the MetaMask wallet extension, and confirm that you did not accidentally close the signing window. If the transaction is still pending without a hash after 15 minutes, clearing the browser cache and restarting MetaMask may help.
If a transaction hash exists, the broadcast succeeded. The next question is whether it is still sitting in the mempool or has been confirmed. Click the hash to open it in a blockchain explorer such as Etherscan. If the explorer shows the transaction as “pending” or displays only the input data without a status, it is waiting to be mined. If it shows a status such as “failed,” “reverted,” or a specific block number with a checkmark, the transaction has reached the chain. Failed transactions on-chain consume gas even though the intended action did not execute; this distinction is critical for understanding what happened to your funds.
Gas costs and network congestion as transaction blockers
A transaction can sit in the mempool indefinitely if its gas costs are too low relative to current network demand. The blockchain processes transactions in order of fee, and when the network is congested, validators prioritize higher bids. If you submitted a transaction during a quiet period with a low gas price, and network activity then increased, your transaction may be bumped backward in the queue.
MetaMask displays gas price in gwei (gigawei, or one billionth of an ETH). The wallet extension offers three preset options: “low,” “standard,” and “aggressive.” These are calculated based on recent network data, but they are suggestions, not guarantees. A “low” setting during high-congestion periods may be insufficient. Check current gas prices on a site such as ethgasstation.info or gwei.io before submitting new transactions. Compare the gas price shown in MetaMask against the current network baseline. If your transaction is below the current average, it will wait.
The remedy depends on whether you want to wait or accelerate. Waiting is free but may take hours or days during extreme congestion. To accelerate, use the “speed up” feature in MetaMask. Open the transaction, select “speed up,” and approve a new transaction with a higher gas price. MetaMask will use the same nonce (a sequence number that prevents replays), so only one transaction will ultimately be confirmed. The new one replaces the old one in the queue, and you pay the difference in gas. This costs more overall, but it confirms the transaction faster.
Nonce errors and transaction sequencing issues
A nonce is a counter that increases by one with each transaction from your address. The blockchain enforces strict ordering: transaction nonce 5 cannot be confirmed until nonce 4 is confirmed. If a transaction is stuck and you submit a new one, the new transaction gets a higher nonce. The blockchain will then wait for the original stuck transaction (the lower nonce) before accepting the new one. This creates a deadlock.
This is the most common reason why multiple “pending” transactions appear in MetaMask. The wallet extension automatically increments the nonce for each new transaction you submit, but it does not know whether an earlier transaction will ever be confirmed. If you submitted five transactions in rapid succession and the third one is stuck with an extremely low gas price, transactions four and five will also be blocked despite having higher gas prices.
The fix requires replacing the stuck transaction with one that has the same nonce but higher gas. In MetaMask, you can use the “speed up” feature if it is available for the stuck transaction. If the stuck transaction is too old or the interface does not offer that option, you may need to reset the account nonce. Go to Settings > Advanced > Clear Activity Tab Data. This resets your local transaction history in MetaMask, but it does not affect the blockchain. After clearing, submit a new transaction with a very high gas price and the correct nonce (equal to the current on-chain nonce of your address). You can find your current nonce using a blockchain explorer: search your address, and the “last txn nonce” field shows what nonce the next transaction should have.
Insufficient balance and approval failures
A transaction may fail on-chain even though MetaMask allowed you to sign it. The most common scenario is an insufficient balance at execution time. If you have 1 ETH and submit a transaction that requires 0.5 ETH in value plus 0.6 ETH in gas, you need 1.1 ETH total. If another transaction drained 0.2 ETH between the time you initiated this transaction and the time it was mined, the transaction will revert with “out of gas” or “insufficient funds” as the reason.
This is less frequent with the blockchain wallet extension because MetaMask checks your balance before presenting the signing screen. However, it can occur in high-volatility scenarios or if you submitted multiple transactions with overlapping fund requirements. Always verify your actual balance on the blockchain itself, not just in the MetaMask display. Use a blockchain explorer to check your address balance, accounting for any pending transactions that may affect it.
Token approval failures are another category. When interacting with a DeFi protocol like Uniswap or Aave, you often need to approve the protocol to spend a token on your behalf. This happens in two steps: first an approval transaction, then the actual transaction using the token. If the approval transaction failed or was never submitted, the main transaction will fail with “insufficient balance” even though you have the tokens. Check your transaction history for the approval step. If it does not exist or shows as failed, submit it again with adequate gas before retrying the main transaction.
Network selection and RPC provider issues
MetaMask connects to blockchain networks through RPC (Remote Procedure Call) endpoints. By default, it uses Infura or another public provider, but you can configure custom RPC endpoints. If the provider is down, slow, or misconfigured, transactions may fail to broadcast or confirmation may appear delayed.
Start by verifying that you have the correct network selected. The network name appears at the top of the MetaMask wallet extension interface. If you intended to transact on Ethereum Mainnet but accidentally selected the Sepolia testnet, your transaction will appear to work but will not affect your real funds (or will move them on the wrong network). Check the network and switch if necessary.
If the network is correct but transactions are still stuck, try changing the RPC provider. Go to Settings > Networks > [Network Name] > RPC URL. Common alternatives include Alchemy, QuickNode, or another public endpoint. Save the new RPC URL and restart MetaMask. Many stuck transactions resolve after switching providers because the new provider may have different mempool status or may rebroadcast the transaction.
Some networks are unreliable by design. Layer 2 solutions like Arbitrum or Polygon occasionally experience temporary disconnections or sequencer issues. Check the network's status page before assuming your transaction is broken. If a major network outage is ongoing, waiting is the only remedy. Once the network recovers, transactions usually confirm quickly.
Hardware wallet integration and signing failures
Users who connect a Ledger or Trezor hardware wallet to MetaMask introduce an additional step in the transaction pipeline. The wallet extension prepares the transaction, the hardware wallet displays it for approval, you confirm on the device, and the signed transaction returns to the extension for broadcast. If any step fails, the transaction cannot complete.
Signing failures are usually device-related. A weak USB connection, a locked device, a missed confirmation on the hardware screen, or a firmware mismatch between the device and MetaMask can all cause the signature to fail. If a signing attempt times out or produces an error, disconnect and reconnect the hardware wallet, ensure the device is unlocked and on the correct app (Ethereum or the relevant network), and try again. Keep the USB cable stable during signing, and confirm the transaction details on the hardware screen match what the extension displayed.
Another issue is version mismatch. Ensure your hardware wallet firmware and the corresponding app on the device are up to date. MetaMask should also be the latest version. You can check Updates in Chrome or Edge settings, or reinstall the extension from the official Chrome Web Store.
Resetting and recovery after persistent failures
If a transaction remains stuck after all remedies, the safest long-term approach is to reset the account's transaction history within MetaMask and proceed with new transactions using the correct nonce. Do not repeatedly submit new transactions hoping one will work; this increases the nonce further and worsens the blockade. Instead, follow this sequence: First, clear the activity tab data (Settings > Advanced > Clear Activity Tab Data). This resets what the extension displays locally without affecting the blockchain. Second, determine your current on-chain nonce using a blockchain explorer. Third, submit a single new transaction with the correct nonce and sufficient gas price. Fourth, wait for confirmation before submitting additional transactions.
For significant amounts or complex scenarios, consider using a dedicated tool such as Etherscan's “Resend” feature for Ethereum mainnet. You can also manually construct and broadcast a transaction using ethers.js or web3.py if you are technically confident, but this is rarely necessary for standard transfers.
If you are using a MetaMask wallet extension connected to a hardware wallet and the device continues to fail, try temporarily importing your recovery phrase into a software-only instance of MetaMask (on a secure, offline machine or a separate browser profile) to isolate whether the issue is the hardware connection or the wallet logic itself. Never type your recovery phrase directly into an online browser or application; this defeats the security of hardware wallet isolation.
Prevention: Habits that reduce transaction failures
Most transaction failures are avoidable with deliberate workflow changes. Submit transactions during low-congestion periods when possible. Check etherscan.io or the network's dashboard to see current gas prices before signing. Use the “standard” or “aggressive” gas setting unless you are absolutely certain the “low” setting is sufficient. For small test transactions, submit with slightly higher gas than estimated; the extra cost is minimal, and it prevents a false failure from discouraging you.
Keep your MetaMask wallet extension and browser up to date. Check for updates weekly. If you use a hardware wallet, update its firmware and the corresponding device app before transacting. Write down or screenshot the transaction hash immediately after signing; if the transaction appears to disappear from the MetaMask activity feed, you can still monitor it using the hash in a blockchain explorer.
Do not submit multiple transactions to the same address in rapid succession unless you understand nonce ordering. If you need to send multiple payments, space them at least one block apart (roughly 15 seconds on Ethereum) to give each transaction time to confirm. This prevents nonce collisions and simplifies troubleshooting if one fails.
Finally, maintain a clear separation between funds you are actively trading and funds you are holding. Use separate addresses or accounts within MetaMask for different purposes. This reduces the risk that a failed transaction in one context will affect your holdings elsewhere, and it makes your transaction history easier to audit.
Frequently asked questions
How long should I wait before assuming a MetaMask transaction is stuck?
During normal network conditions, a transaction should be confirmed within 30 seconds to 2 minutes on Ethereum mainnet. If it remains “pending” after 15 minutes and the blockchain explorer shows no activity, the transaction likely failed to broadcast or has insufficient gas. Use the “speed up” feature or check your nonce immediately rather than waiting longer. During extreme congestion, waiting 1–2 hours is sometimes necessary, but this should be rare.
Does using the MetaMask wallet extension with a hardware wallet cost more in gas fees?
No. Gas costs are determined by network demand and the gas price you set, not by whether you use a hardware wallet or a software wallet. The hardware wallet adds a signing step but does not increase the transaction cost. However, a failed signature attempt may waste time and require resubmission, which could incur additional gas if the network price increased between attempts.
What should I do if MetaMask shows a nonce error when I try to send a transaction?
A nonce error means your address has an unconfirmed transaction with a lower nonce. You cannot proceed until that earlier transaction is resolved. Use “speed up” on the stuck transaction, wait for it to confirm, or reset your account's activity tab data and resubmit with the correct on-chain nonce. Do not repeatedly submit new transactions; this increases the nonce further and worsens the blockade.