Rejection before inclusion differs from a revert during execution.
LET’S PICTURE IT
An office can refuse a malformed application at the door, or process a valid application and find that its requested action is not allowed.
SEE IT FOR YOURSELF
Follow a revert and decode its error dataStep 1 / 4
This fictional call requests a transfer of one hundred raw units while the relevant balance is forty.
This fictional call requests a transfer of one hundred raw units while the relevant balance is forty.The contract rejects this request. State changes in the reverted call are rolled back, while work already consumed can still cost gas.A common Error(string) begins with selector 08c379a0. This example then encodes the message Not enough tokens.A decoder can recognize the supplied error shape. Identifying the true cause and source still needs the call context, code and state.
Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.
Some requests are not valid transactions
Bad encoding, invalid authorization or unmet transaction-validity conditions can prevent inclusion. This is different from a valid transaction whose contract execution eventually reverts. Error messages from a provider may describe different stages.
Execution can revert
A contract might reject the caller, require a balance it does not have, or encounter another runtime problem. A top-level revert rolls back execution’s state changes, while already consumed gas remains chargeable.
Running out of gas is also failure
The gas limit bounds execution resources. If the computation cannot complete within the allowed gas, its intended state changes do not complete successfully. A larger limit is not a universal repair for a failed permission or logic check.
Collect the right evidence
Read the receipt’s status, inspect available revert bytes, and identify the failing call context. Our revert decoder interprets supplied error data; it cannot fetch a real trace or infer every failure from a transactionhash.