Owlio
EN
← Blog
How-toBeginner

Failed Ethereum transaction: why gas was still charged

A failed action can leave your tokens unchanged while reducing your ETH. Read the transaction record before paying for another attempt.

A failed Ethereum transaction can still cost ETH because execution uses paid computation, even when the intended action is rolled back. If the transaction was included in a block and its top-level status is Failed, the transfer or contract changes from that transaction do not take effect. The execution fee is still charged.

This guide covers ordinary Ethereum Mainnet transactions from an account that pays its own gas. Smart accounts, sponsored transactions, exchange withdrawals and transfers spanning several chains can have additional steps or charges. A failed step in an app is not enough to establish that the whole on-chain transaction failed.

First establish what actually failed

Open the transaction from your wallet’s activity and check it in the explorer for Ethereum Mainnet. Record the full transaction hash, sender, block number and overall status. You can inspect those public details without signing anything.

The distinction matters because Ethereum receipts record the top-level execution result: status 0 means failure and 1 means success. A failed inner call shown in a trace is not necessarily a failed overall transaction. If the overall status is Success, inspect the action’s actual result instead of assuming everything was rolled back.

If there is no block number and the transaction is still pending, use the pending transaction checklist. The checks below start after inclusion; increasing the fee of a transaction that has already failed does not change its recorded outcome.

Read the fee separately from the intended amount

On the failed transaction page, find Transaction Fee, Gas Used and the effective Gas Price, where the explorer provides them. Keep the intended transfer amount separate. A Value field can describe what was submitted without proving that amount reached the recipient.

For a regular Mainnet transaction, the charged execution fee is gas used multiplied by the effective price per gas. The maximum fee setting and gas limit describe bounds, so multiplying those two limits does not establish what you actually paid. Ethereum’s gas documentation explains these distinctions.

Here is an illustrative calculation, not a live transaction or current fee estimate:

Item Example value
Intended token transfer 100 tokens
Overall receipt status Failed
Gas used 60,000 units
Effective gas price 5 gwei per unit
Execution fee 300,000 gwei, or 0.0003 ETH

With no other activity, the failed transfer leaves the sender’s token balance unchanged while their ETH balance decreases by the fee. This example does not set a suitable gas limit or quote a price for your next transaction.

If your ETH decrease is larger than the recorded fee, examine other transactions from the same account. Do not use a dollar portfolio chart to reconstruct the charge: market prices can change at the same time. If quantities still disagree across screens, continue with the portfolio balance checklist.

Separate out of gas from a contract revert

Etherscan’s failure guide distinguishes execution that runs out of gas from a contract that reverts. Both can produce a failed transaction, but they call for different investigation.

Out of gas during execution: the computation exhausted the available gas. The attempted changes are rolled back and the provided gas is consumed. Compare gas used with the limit and read the explorer’s error. If this was a legitimate action you still want, consult the wallet or protocol’s current guidance for estimating it. Do not copy an old limit from an unrelated transfer.

Execution reverted: a contract stopped execution and undid its changes. It may return an error explaining a condition that was not met. The REVERT specification allows unused gas to remain, so a failed receipt need not show 100% of the gas limit consumed.

Save the exact error and look it up in the documentation of the protocol you intended to use. An explorer may not decode it, and a generic revert message may not identify the cause. In that case, the cause remains unresolved. A bigger gas allowance is not evidence that the contract’s condition has changed.

Gas price and gas limit are separate controls. Paying more per unit cannot make a contract accept an action it rejects. Do not loosen transaction protections or increase limits just to dismiss a warning you do not understand.

Check earlier successful steps before trying again

An app flow can involve more than one transaction. For example, an approval can succeed in one transaction and a later swap can fail in another. The later failure does not undo an earlier transaction. Check each hash and its status independently.

Make a small record before authorizing another attempt:

  1. Failed action: hash, block, overall status and exact error.
  2. Cost: transaction fee, gas used and effective gas price.
  3. Other steps: hashes and results of any separate approval, deposit or retry.
  4. Current state: token amount and any relevant protocol position for this account on Mainnet.
  5. Reason to retry: the identified cause and what has changed to address it.

If you cannot complete the last item, retrying leaves the cause unresolved and can cost another fee if the new transaction is included in a block. Use the protocol’s official support route with public transaction details, keeping your seed phrase and private keys private.

A failed action does not create a refundable gas balance

MetaMask explains that it does not collect the network gas fee and cannot refund it. Unused gas allowance is different from the fee already consumed by execution. There is no need to claim that unused allowance by connecting to a refund site.

A portfolio tracker can help compare holdings, but its total cannot explain a contract error or reverse the transaction. Keep the failed receipt and its fee as the record of this attempt. Before proceeding, you should know which action failed, what it cost, and which condition a new attempt would change.

Frequently asked questions

Do I lose the tokens I tried to send when an Ethereum transaction fails?

For an ordinary Ethereum Mainnet transaction whose top-level receipt reports failure, the intended transfer and contract state changes are rolled back. The sender still pays the execution fee. Check separate transactions and the exact token contract if your balances do not match that result.

Does a failed transaction always use the whole gas limit?

No. A contract can deliberately revert before using all the available gas. Running out of gas during execution consumes the provided gas. Read the receipt's gas used and the failure reason rather than inferring the result from the limit.

Will raising the gas price fix a reverted transaction?

A higher price per unit of gas does not change the contract's conditions. Identify the error first. Gas limit and gas price are different settings, and a new attempt can fail and incur another fee.