Guides / Debug a stuck transaction
Debug a stuck transaction
Broadcast a transaction and it just sits there, unconfirmed? That's a stuck transaction. This guide covers why it happens and the handful of ways to get it moving again.
On this page
What "stuck" means
A stuck transaction has been broadcast but still shows zero confirmations long after you'd expect it to be mined. It's sitting in the mempool, waiting to be picked up. See how confirmations work.
Why it happens
- The fee rate is too low for the current mempool, so miners keep choosing others first.
- It depends on an unconfirmed parent transaction that's also waiting.
- The mempool filled up and evicted it.
- It's non-standard and some nodes won't relay it.
- On testnet, blocks can stall for a while because timing here is erratic.
Diagnose it
Look it up on TestnetScan. Is it still in the mempool, or has it disappeared entirely? Check its fee rate against what recent blocks are accepting. That tells you which fix you need.
The fixes
| Option | When to use it |
|---|---|
| Wait | On testnet, timing is erratic and it may clear on its own. Often the easiest fix. |
| RBF (Replace-By-Fee) | If the transaction signaled RBF, rebroadcast a replacement with a higher fee. |
| CPFP (Child-Pays-For-Parent) | Spend the stuck transaction's output with a new, high-fee child. Miners must take the parent to get the lucrative child. |
| Let it drop | If it falls out of every mempool, its inputs are free again and you can respend them. |
Rebuilding and re-pushing the hex? See broadcasting a raw transaction.
Monero
Stuck transactions are rare on Monero. Usually you're just waiting for the standard ~10-block unlock before an output is spendable, not for a confirmation. See the Monero guide.
Testnet coins are fake money
- They have no market value, so never buy or sell them.
- Never use a real seed phrase or import a real wallet on testnet.
- Never send mainnet BTC, LTC, or XMR to a testnet address.