Skip to content
A global perspective on digital assetsGLOBAL PERSPECTIVE · LOCAL CONTEXT
ChainView BTC866CHAIN VIEW
Learn

Diagnosing Failed Transactions: Status, Gas and Reverts

Not broadcast, pending inclusion, and included with failed execution are different transaction states.

Read inEnglish简体中文繁體中文한국어РусскийالعربيةEspañol (México)Tiếng Việtไทย
Diagnosing Failed Transactions: Status, Gas and Reverts

Original topic illustration: ChainView BTC866 original topic diagram · ChainView BTC866 Editorial · CC BY 4.0

Establish the concept

Not broadcast, pending inclusion, and included with failed execution are different transaction states. A wallet timeout can mean that a response was lost rather than that nothing happened. Query the hash, account nonce, and reliable endpoint before resending. If no hash is available, preserve the wallet message, time, and parameters and consult documented behaviour. A second independent payment can become valid even while the first interface remains uncertain.

When reading a receipt, separate the business result from the network fee. A status of one does not necessarily mean that the user's complete intention occurred, particularly when a batch contract can perform several internal actions. Interpret events with the target function and state, rather than treating a generic success badge as a complete account of what changed.

Choose reliable evidence

Under common Ethereum execution semantics, an included revert rolls back corresponding execution-state changes while still consuming gas. A reduced balance may therefore reflect a network fee rather than the intended transfer. Do not infer zero cost from a failed business action. Chains, transaction types, and cross-chain paths can differ. Inspect receipt status, gas used, effective fee, and relevant events instead of treating a red icon as a complete technical or financial explanation.

Error decoding must match the selector, contract source, proxy address, and implementation version. A browser message such as execution reverted is a starting point. Parameters, caller, and state at execution time jointly determine the cause. Do not invent a definite repair from one short error string or assume that a proxy's visible address is the code that produced the underlying behaviour.

Check concrete fields

Causes can include insufficient balances, allowances, expiry, slippage conditions, pausing, incorrect parameters, or exhausted gas. Decode errors through trusted explorers and official documentation, and confirm the destination contract and call data. Repeatedly increasing amounts, granting unlimited authority, or disabling protections is not a principled response to an unknown error. Fee competition and business-condition failure are different problems and require different evidence before a correction is justified.

If a transaction remains pending, a replacement, a fee change, or waiting can alter the result. Query the original nonce and candidate before submitting anything with a new nonce. A confirmed failed transaction cannot be replayed safely simply by sending identical data; balances, approvals, deadlines, and contract state may have changed. The same parameters can now succeed, fail differently, or create an unintended effect.

Handle boundary cases

Simulation observes a particular state that can change before execution. Balances, prices, nonces, permissions, and contract configuration can all move. Simulation success does not guarantee final success, while simulation failure is not automatically proof that assets are in danger. Compare the simulated block and assumptions with eventual execution. Correct one verified cause at a time, then decide whether a retry is appropriate rather than changing every setting and losing the ability to explain what mattered.

Estimated and actual fees are separate fields. Interpret EIP-1559 and other fee parameters for the chain and transaction type in use. A low simulation estimate does not remove congestion or replacement risk. Preserve submitted fee settings, effective fee, gas used, and the endpoint that supplied each observation. This makes a fee disagreement reviewable rather than a matter of guessing from a wallet's rounded display.

Keep results and versions

Retain original and retry hashes, messages, receipts, parameters, and versions, and check whether another transaction already completed part of the intended workflow. A cross-chain source success and destination failure particularly needs stage-by-stage records. Stop if a supposed helper demands a private top-up or recovery words to unfreeze the transaction. The goal is to identify states and evidence, not to offer one universal repair phrase that ignores network rules and can accidentally duplicate a payment.

After troubleshooting, perform an independent read-only check of balance, allowances, and the intended destination state and save the final hash. Cross-chain delivery, platform credit, and supposed support unfreezing require stage-specific evidence. One receipt can prove one transaction's state, but it cannot silently certify an entire business workflow or a claim made by an unrelated helper.

Sources

  1. Ethereum transactions (opens in a new tab)
  2. Solidity revert (opens in a new tab)