ERC-20 transactions usually fail because the transaction ran out of gas, the token balance or allowance was insufficient, the nonce was wrong, or the token contract blocked the transfer. The fastest way to fix the problem is to check the failed transaction on a block explorer, identify the revert reason, and then adjust the gas limit, approval, nonce, or token choice before trying again.
An ERC-20 transfer can fail even when the Ethereum network is working normally. In most cases, the problem happens during contract execution, not because the chain is broken. When you send an ERC-20 token, your wallet is not just moving coins the way a native ETH transfer works. It is calling a smart contract function such as transfer(), approve(), or transferFrom(). If any rule inside that contract rejects the action, the transaction reverts.
That distinction matters because a failed ERC-20 transaction often means two things at once: the token movement did not complete, but the gas fee was still spent. Validators still had to process the transaction, so the network fee is not refunded.
In practice, most failures fall into four buckets:
| Failure Type | What Usually Happens | Common Fix |
|---|---|---|
| Out of gas | Execution stops before completion | Increase gas limit and retry |
| Balance or allowance issue | Contract rejects transfer or spend request | Check token balance and approval amount |
| Nonce problem | Transaction stays pending, rejected, or replaced | Wait, cancel, or resend with same nonce and higher fee |
| Token contract restriction | Transfer or sell is blocked by token logic | Confirm whether the token is transferable or sellable |
The best first step is to open the transaction hash in a block explorer. On Ethereum, that is usually Etherscan. On Layer 2 networks, it may be a chain-specific explorer with a similar interface. Look for the transaction status, internal call trace, and any revert reason shown in the details.
If the explorer shows a message like Out of Gas, execution reverted, or InsufficientAllowance, you already have a strong clue. A revert reason is often the shortest path to a fix because it tells you which contract condition failed.
Typical signs to look for include:
If you actively trade or move tokens across wallets, keeping track of transaction history on the WEEX Exchange and on-chain explorers together can make troubleshooting faster, because exchange records help you confirm whether the issue started on-chain or before the withdrawal or deposit request.
Gas limit errors are one of the most frequent causes of failed ERC-20 transactions. Wallets often estimate gas automatically, but estimates are not always perfect. Some tokens use proxy contracts, transfer taxes, anti-bot rules, or extra checks that consume more gas than a simple token transfer.
That means a transfer may look ordinary from the wallet interface but still require more gas once it starts executing on-chain. If the transaction reaches the gas ceiling before finishing, the entire token action reverts.
Current best practice is not to rely too closely on the raw gas estimate. Network documentation for EVM chains commonly recommends adding a safety buffer. A practical rule used today is to add about 20% above the estimated gas limit for contract interactions that seem complex or have previously failed.
This is especially relevant for:
Remember that gas limit and gas price are different. A low gas price can slow confirmation. A low gas limit can cause execution failure.
As of now, one of the clearest operational recommendations from current EVM-chain documentation is to add a buffer to gas estimates instead of using the exact eth_estimateGas result. A roughly 20% cushion is widely used to reduce out-of-gas failures on more complex token contracts.
Recent troubleshooting guidance also continues to emphasize nonce management on busy networks. If a pending transaction already occupies nonce N, every later transaction from the same wallet waits behind it until that nonce is confirmed, replaced, or dropped. In practical terms, many “failed” or “stuck” ERC-20 issues are really transaction-sequencing issues.
Two of the simplest failures are still very common: not having enough tokens and not having enough allowance. These sound similar, but they are different checks.
Balance means the wallet sending the tokens must actually hold the amount being transferred. If you try to move more than your token balance, the contract rejects the transfer.
Allowance matters when another contract, such as a DEX, bridge, or staking app, is trying to spend tokens on your behalf. In that case, you usually need to call approve() first. If the approval failed earlier, or if the approved amount is smaller than the intended spend, the next transaction can revert.
A few practical checks help here:
approve() transaction actually succeeded.If the failed transaction was an approval itself, no allowance was set, even though you still paid gas. That is frustrating, but it also means the token was not silently granted spending permission after a failed approval.
Every EVM transaction from a wallet has a nonce, which is just a sequence number. Transactions must be processed in order. If a wallet sends two transactions with the same nonce by mistake, one can be rejected or one can replace the other. If an older transaction is still pending, newer ones can remain stuck behind it.
Nonce issues usually show up in a few ways:
To fix a nonce problem, you typically do one of three things:
Advanced users sometimes query the current pending nonce directly from a node, but most retail users can handle this inside a wallet interface.
Not every ERC-20 token behaves like a plain standard token. Some contracts contain restrictions that can cause a legitimate-looking transaction to fail even when gas, balance, and nonce are all correct.
Examples include:
This is why a failed sell of a small-cap token is not always a wallet problem. Sometimes the token itself is designed to reject the trade or make the result economically meaningless. If repeated sell attempts fail while buys appear to work, that is a serious warning sign.
When a token transfer to a contract address fails, another possibility is method mismatch. Some protocols expect the standard approve + transferFrom flow instead of a direct transfer(). Sending tokens straight to a contract can fail if that token contract forbids such deposits.
Sending ERC-20 tokens to a smart contract address is more dangerous than sending to a normal wallet. Not every contract is built to receive direct token transfers, and not every token allows them. In many decentralized applications, the expected pattern is:
transferFrom().If you skip that process and manually send tokens with a direct transfer, one of two things may happen. The transaction may fail outright, or it may succeed but leave the tokens stuck in a contract that does not support recovery.
Before sending, verify:
If your transaction failed and you want a practical recovery workflow, follow this order:
This sequence solves most real-world cases without guesswork.
Prevention mostly comes down to slowing down before you sign. ERC-20 failures are often avoidable if you verify the contract path, token behavior, and fee settings in advance.
Good habits include:
For traders moving between wallets, exchanges, and decentralized apps, keeping assets on a platform with straightforward account records can also reduce confusion around what failed, where it failed, and whether the issue was on-chain or off-chain. Spot market participants who later move assets out for on-chain use may also review a common trading interface such as WEEX BTC/USDT spot simply as an example of how exchange-side records differ from blockchain execution records.
This article is for informational purposes only and does not constitute financial, legal, or investment advice.
This content is provided for general informational purposes only and doesn't constitute financial, investment, legal, or tax advice. Any events, rewards, online promotions, or related information mentioned herein should not be considered a recommendation, solicitation, or invitation to purchase, sell, trade, or otherwise deal in any crypto assets. Crypto assets are highly volatile and may result in loss. The availability of WEEX services, products, and related events may vary by region. You are responsible for ensuring that your participation is in accordance with applicable local laws and regulations.

Buy crypto for $1