Independent DeFi security desk · Status: operationalMethodology & corrections · Submit an incident
DeFi Safety · Fact checked

Why a Pending Transaction Is Not the Same as a Failed One

A stuck transaction has usually been broadcast and may still settle. Here is how pending, dropped and reverted actually differ.

This article may contain affiliate links. Commercial relationships are disclosed in the affiliate policy.

DeFi Safety — illustration keyed to this article's identifier. Source documents are listed under Sources and are not reproduced here.

Pending means submitted, not rejected

A transaction that shows as pending has already been signed by you and handed to the network. Your node has broadcast it and it is waiting in the mempool for a miner or validator to include it in a block. Nothing about the signature can be recalled at this point; the only question is when, if ever, it gets included.

This is why the intuitive response — signing the same action again — is the one thing that reliably makes the situation worse. Every resubmission is a separate transaction with its own nonce and its own fee, and if the first one later settles, you have now executed the action twice.

Three states that look similar in an interface

Pending, dropped and reverted are three different outcomes that interfaces often render with the same spinner.

Pending is the normal waiting state. The transaction exists, is valid, and is waiting for inclusion. Typical causes are low priority fee relative to current demand, or a block time you have not accounted for.

Dropped means the transaction was valid when submitted but was evicted from the mempool before inclusion, usually because the fee was too low to survive a period of congestion. Your funds are not at risk; the transaction simply never happened on chain.

Reverted means the transaction was included in a block and then executed unsuccessfully. Gas is consumed, the state changes you asked for did not happen, and the nonce has been used. This is the only one of the three that costs gas.

What to do, in order

Wait before doing anything. Check the transaction on a block explorer rather than in the wallet interface, because the explorer’s view comes from the network and cannot be optimistic.

If the explorer shows it in the mempool, it is pending: leave it alone. If the explorer shows it as not found and the nonce is still unused, it was dropped and you can resubmit with a higher priority fee. If the explorer shows it as failed or reverted, the transaction is finished; read the revert reason before trying again, because the same transaction will fail the same way.

Speed up a pending transaction by submitting a replacement with the same nonce and a higher fee, not by signing a fresh transaction with a new nonce. Wallets label this “speed up” or “cancel”; both work by replacing the original.

Where the confusing part comes from

The reason this is hard to reason about is that a nonce is per-account and sequential. If transaction 40 is pending, transaction 41 cannot be included until 40 is resolved. That is why a stuck transaction blocks everything queued behind it in the same account, and why moving assets out of the same wallet can be impossible while one transaction sits unresolved.

This is also why “just send it again with another account” is a workaround people recommend. It works, and it leaves the original transaction pending in the old account, which then quietly settles later.

What this article does not claim

This does not predict how long a pending transaction will take, and it does not tell you what fee level is sufficient, since that changes continuously. It does not cover tokens with non-standard transfer behaviour such as fee-on-transfer designs, which can fail for reasons unrelated to the account nonce.

This material is educational and is not financial, legal, tax or security advice. Network behaviour and wallet interfaces change; check your wallet’s current documentation.

Sources