ERC-20 transactions usually fail because the network or token contract rejected the request, not because your tokens vanished. The most common causes are insufficient ETH for gas, a gas limit that was too low, not enough token balance or allowance, token transfer restrictions, or a newer transaction replacing an older one with the same nonce.
An ERC-20 transfer can fail at two main stages: before miners or validators include it in a block, or during smart contract execution after it is included. That distinction matters because a pending or dropped transaction needs a different fix than a confirmed transaction marked as failed.
In a normal failed transaction, the token transfer you intended usually does not complete, but the gas used for the attempt is still spent. This is one of the most misunderstood parts of Ethereum: execution can fail while the network fee is still charged because validators still processed the transaction attempt.
Failures are especially common when users interact with token contracts through wallets, swaps, staking apps, bridges, and payment dApps. In those cases, you are not just sending a token. You are calling contract logic, and that logic can reject the action for several reasons.
The first step is always to check the transaction hash in a block explorer. Look at the status field and the error text, if any. You are usually dealing with one of three states:
| Status | What It Means | What Usually Happened | What to Do Next |
|---|---|---|---|
| Pending | The transaction has not been confirmed yet | Gas fee was too low or the network is congested | Wait, speed up, or cancel with the same nonce |
| Fail | The transaction was included but execution did not succeed | Out of gas, revert, bad instruction, or contract restriction | Read the error and fix the root cause before resending |
| Dropped or Replaced | The original transaction is no longer active | A new transaction with the same nonce replaced it | Check the replacement transaction status |
If you trade or manage assets across different Ethereum-compatible tools, keeping an account on the WEEX Exchange can help you separate exchange activity from wallet-based on-chain actions, which makes nonce and transaction tracking easier to review.
Gas-related mistakes are the most frequent cause of failure. ERC-20 tokens do not pay gas themselves. You need the chain’s native token, usually ETH on Ethereum mainnet, to pay the execution fee.
The most common gas issues are:
| Gas Problem | What It Looks Like | Typical Fix |
|---|---|---|
| Insufficient native token balance | You have the token but not enough ETH for network fees | Add more ETH, then resend |
| Gas limit too low | Transaction shows “Out of Gas” | Resend with a higher gas limit |
| Max fee or priority fee too low | Transaction stays pending for a long time | Speed up with a higher fee using the same nonce |
A gas limit is not the same as a gas price. The gas limit is the maximum computational work your transaction is allowed to use. The fee settings determine how much you are willing to pay for that work. If either setting is too low, the transaction may never confirm or may fail after starting execution.
Some ERC-20 failures have nothing to do with Ethereum congestion. The token contract itself may be blocking the action.
Common contract-side reasons include:
If the explorer shows “Reverted” or “Bad Instruction,” that often means the smart contract actively rejected the call or hit a logic error. In those cases, simply sending the same transaction again without changing anything usually leads to the same result and more wasted gas.
Many ERC-20 problems happen during contract interactions rather than simple wallet-to-wallet transfers. If you are using a decentralized exchange, staking contract, payment processor, or bridge, the app often uses transferFrom instead of a direct transfer.
That means the contract needs approval first. If the allowance is too small, expired in practice because you changed wallets, or points to the wrong spender address, the transaction can revert.
Check these four items before trying again:
If approval is the issue, the fix is usually to submit a new approval transaction first, wait for confirmation, and only then retry the main action.
These messages point to smart contract execution problems.
Reverted usually means the contract hit a condition that told it to stop and roll back the state change. That can happen because of insufficient allowance, a forbidden recipient, a transfer lock, invalid parameters, or another rule built into the contract.
Bad Instruction generally suggests a deeper logic or code issue inside the contract. For token users, that often means the problem is not fixable from the wallet side alone. If the token contract itself is broken or intentionally restrictive, only the project or contract owner can clarify what happened.
If your wallet only says “execution reverted” without a readable reason, the explorer may not decode the exact cause. In that case, compare the failing call with your balance, approval, target address, and network. If all of those look correct, the next step is usually contacting the token project or protocol support team.
Every transaction from your wallet uses a nonce, which is a sequence number. Ethereum processes them in order. If one nonce is stuck, later transactions may queue behind it.
A transaction can also be replaced if you submit another transaction from the same wallet using the same nonce and a higher fee. Wallets often label this as “speed up.” If you send a self-transfer with the same nonce, wallets may use that to cancel the old pending action.
This creates two common user misunderstandings:
When checking the explorer, always inspect both the failed or missing transaction and any later transaction with the same nonce.
Do not immediately resend the same transaction. First identify the exact failure type.
| Explorer Message | Most Likely Meaning | Best First Response |
|---|---|---|
| Out of Gas | Gas limit was too low | Resend with a higher gas limit |
| Reverted | Contract rejected the action | Check balance, allowance, address, and token rules |
| Bad Instruction | Contract logic error or restriction | Contact the project or contract owner |
| Pending | Fee too low or congestion | Speed up or cancel using the same nonce |
| Dropped and Replaced | New same-nonce transaction superseded it | Track the replacement transaction |
Use this sequence to troubleshoot without wasting more gas:
This process is much safer than repeatedly clicking send and creating a chain of stuck nonces or repeated failures.
Sometimes the transaction does not fail at all, but the result is still bad. One classic example is sending ERC-20 tokens directly to a token contract address or another contract that cannot manage incoming tokens.
In that case, the transfer may succeed on-chain, but the tokens can become stuck permanently if the receiving contract has no withdrawal or recovery function. This is different from a normal failed transaction because the network accepted the transfer.
Before sending tokens, always confirm that the destination address is a wallet or a contract specifically designed to receive that token. If the transfer has already succeeded to an incompatible contract, recovery may be impossible unless the contract owner can access and return the funds.
A few habits reduce most ERC-20 errors:
As of now, the safest mindset is to treat every token interaction as a contract call first and a simple payment second. ERC-20 transfers may look simple on the screen, but under the hood they follow exact execution rules, and the chain enforces them strictly.
This article is for general information only and does not constitute financial, legal, or technical 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