Repository navigation
Expand file tree
/
Copy pathdebug-stuck-tx.html
More file actions
152 lines (138 loc) · 11.2 KB
/
Copy pathdebug-stuck-tx.html
File metadata and controls
152 lines (138 loc) · 11.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!DOCTYPE html>
<!-- SPDX-License-Identifier: AGPL-3.0-or-later | TestnetHub © 2026 Tech1k -->
<html lang="en" data-theme="dark">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Debug a stuck transaction · TestnetHub</title>
<meta name="description" content="Why a transaction gets stuck unconfirmed, and how to fix it with RBF, CPFP, or by waiting it out on testnet.">
<link rel="canonical" href="https://testnethub.com/debug-stuck-tx">
<meta name="robots" content="index, follow">
<meta name="referrer" content="no-referrer">
<meta name="theme-color" content="#14161b">
<meta name="author" content="Tech1k">
<meta property="og:type" content="article">
<meta property="og:site_name" content="TestnetHub">
<meta property="og:title" content="Debug a stuck transaction · TestnetHub">
<meta property="og:description" content="Why a transaction gets stuck unconfirmed, and how to fix it with RBF, CPFP, or by waiting it out on testnet.">
<meta property="og:url" content="https://testnethub.com/debug-stuck-tx">
<meta property="og:image" content="https://testnethub.com/assets/og.png?v=2">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="TestnetHub: learn crypto with fake coins and real protocols">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Debug a stuck transaction · TestnetHub">
<meta name="twitter:description" content="Why a transaction gets stuck unconfirmed, and how to fix it with RBF, CPFP, or by waiting it out on testnet.">
<meta name="twitter:image" content="https://testnethub.com/assets/og.png?v=2">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/assets/icon-192.png">
<link rel="manifest" href="/manifest.webmanifest">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; manifest-src 'self'; object-src 'none'; base-uri 'none'; form-action 'none'">
<script src="/assets/theme-init.js?v=1"></script>
<link rel="stylesheet" href="/assets/style.css?v=5">
<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://testnethub.com/#org","name":"TestnetHub","url":"https://testnethub.com/","logo":"https://testnethub.com/favicon.svg"},{"@type":"WebSite","@id":"https://testnethub.com/#website","name":"TestnetHub","url":"https://testnethub.com/","publisher":{"@id":"https://testnethub.com/#org"},"description":"Learn the Bitcoin, Litecoin, and Monero testnets with free coins and real protocols."}]}</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://testnethub.com/"},{"@type":"ListItem","position":2,"name":"Guides","item":"https://testnethub.com/guides"},{"@type":"ListItem","position":3,"name":"Debug a stuck transaction","item":"https://testnethub.com/debug-stuck-tx"}]}</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"Debug a stuck transaction","description":"Why a transaction gets stuck unconfirmed, and how to fix it with RBF, CPFP, or by waiting it out on testnet.","inLanguage":"en","isPartOf":{"@id":"https://testnethub.com/#website"},"publisher":{"@id":"https://testnethub.com/#org"},"author":{"@id":"https://testnethub.com/#org"},"dateModified":"2026-08-07","mainEntityOfPage":"https://testnethub.com/debug-stuck-tx"}</script>
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<span id="copy-status" role="status" class="visually-hidden"></span>
<nav class="navbar">
<a href="/" class="brand" aria-label="TestnetHub home">
<svg class="brand-logo" viewBox="0 0 64 64" width="26" height="26" aria-hidden="true"><rect class="mark-bg" width="64" height="64" rx="14"/><g stroke="currentColor" stroke-width="3.4" stroke-linecap="round"><line x1="32" y1="32" x2="19" y2="19"/><line x1="32" y1="32" x2="45" y2="19"/><line x1="32" y1="32" x2="19" y2="45"/><line x1="32" y1="32" x2="45" y2="45"/></g><g fill="currentColor"><circle cx="19" cy="19" r="5"/><circle cx="45" cy="19" r="5"/><circle cx="19" cy="45" r="5"/><circle cx="45" cy="45" r="5"/><circle cx="32" cy="32" r="6.5"/></g></svg>
<span class="brand-name">Testnet<b>Hub</b></span>
</a>
<input type="checkbox" class="menu-toggle" id="menu-toggle" aria-label="Open the navigation menu" aria-controls="nav-links">
<label for="menu-toggle" class="hamburger"><div></div><div></div><div></div></label>
<div class="nav-links" id="nav-links">
<a href="/">Home</a>
<a href="/testnets">Testnets</a>
<a href="/guides">Guides</a>
<a href="/tools">Tools</a>
<a href="/status">Status</a>
<a href="/donate">Donate</a>
<button class="theme-toggle" id="theme-toggle" type="button" aria-label="Toggle light / dark theme" title="Toggle theme"><svg class="ico ico-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg><svg class="ico ico-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg></button>
</div>
</nav>
<main id="main" class="filled" tabindex="-1">
<p class="crumb"><a href="/guides">Guides</a> / Debug a stuck transaction</p>
<div class="card hero">
<div class="card-body">
<h1><span class="grad">Debug a stuck transaction</span></h1>
<p class="lede">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.</p>
</div>
</div>
<div class="toc">
<p class="toc-title">On this page</p>
<ul>
<li><a href="#what">What "stuck" means</a></li>
<li><a href="#why">Why it happens</a></li>
<li><a href="#diagnose">Diagnose it</a></li>
<li><a href="#fix">The fixes</a></li>
<li><a href="#monero">Monero</a></li>
</ul>
</div>
<div class="card"><div class="card-body prose">
<h2 id="what">What "stuck" means <a class="anchor" tabindex="-1" href="#what" aria-hidden="true">#</a></h2>
<p>A stuck transaction has been broadcast but still shows <strong>zero confirmations</strong> long after you'd expect it to be mined. It's sitting in the mempool, waiting to be picked up. See <a href="/confirmations">how confirmations work</a>.</p>
<h2 id="why">Why it happens <a class="anchor" tabindex="-1" href="#why" aria-hidden="true">#</a></h2>
<ul>
<li>The <a href="/fees">fee rate</a> is too low for the current mempool, so miners keep choosing others first.</li>
<li>It depends on an unconfirmed parent transaction that's also waiting.</li>
<li>The mempool filled up and evicted it.</li>
<li>It's non-standard and some nodes won't relay it.</li>
<li>On testnet, blocks can stall for a while because timing here is erratic.</li>
</ul>
<h2 id="diagnose">Diagnose it <a class="anchor" tabindex="-1" href="#diagnose" aria-hidden="true">#</a></h2>
<p>Look it up on <a href="/explorer">TestnetScan</a>. 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.</p>
<h2 id="fix">The fixes <a class="anchor" tabindex="-1" href="#fix" aria-hidden="true">#</a></h2>
<div class="table-wrap"><table>
<thead><tr><th scope="col">Option</th><th scope="col">When to use it</th></tr></thead>
<tbody>
<tr><th scope="row"><strong>Wait</strong></th><td>On testnet, timing is erratic and it may clear on its own. Often the easiest fix.</td></tr>
<tr><th scope="row"><strong>RBF</strong> (Replace-By-Fee)</th><td>If the transaction signaled RBF, rebroadcast a replacement with a higher fee.</td></tr>
<tr><th scope="row"><strong>CPFP</strong> (Child-Pays-For-Parent)</th><td>Spend the stuck transaction's output with a new, high-fee child. Miners must take the parent to get the lucrative child.</td></tr>
<tr><th scope="row"><strong>Let it drop</strong></th><td>If it falls out of every mempool, its inputs are free again and you can respend them.</td></tr>
</tbody>
</table></div>
<p>Rebuilding and re-pushing the hex? See <a href="/broadcast-raw-tx">broadcasting a raw transaction</a>.</p>
<h2 id="monero">Monero <a class="anchor" tabindex="-1" href="#monero" aria-hidden="true">#</a></h2>
<p>Stuck transactions are rare on Monero. Usually you're just waiting for the standard ~10-block <strong>unlock</strong> before an output is spendable, not for a confirmation. See the <a href="/monero">Monero guide</a>.</p>
</div></div>
<div class="warnbox">
<span class="wb-ico" aria-hidden="true">⚠️</span>
<div class="wb-body">
<h3>Testnet coins are fake money</h3>
<ul>
<li>They have no market value, so never buy or sell them.</li>
<li>Never use a real seed phrase or import a real wallet on testnet.</li>
<li>Never send mainnet BTC, LTC, or XMR to a testnet address.</li>
</ul>
</div>
</div>
<div class="pagenav">
<a href="/rpc-safety"><div class="pn-dir">← Previous</div><div class="pn-t">Use node RPC safely</div></a>
<a class="pn-next" href="/build-app"><div class="pn-dir">Next →</div><div class="pn-t">Build a testnet app</div></a>
</div>
</main>
<footer>
<div class="foot-inner">
<a class="ext" href="https://cypherfaucet.com" target="_blank" rel="noopener">Faucet</a>
<a class="ext" href="https://testnetpool.com" target="_blank" rel="noopener">Pool</a>
<a class="ext" href="https://testnetwallet.net" target="_blank" rel="noopener">Wallet</a>
<a class="ext" href="https://testnetscan.com" target="_blank" rel="noopener">Explorer</a>
<a class="ext" href="https://testnetswap.com" target="_blank" rel="noopener">Swap</a>
<a href="/guides">Guides</a>
<a href="/status">Status</a>
<a href="/donate">Donate</a>
<span class="faint">·</span>
<span>Part of the <a class="ext" href="https://tech1k.com" target="_blank" rel="noopener">Tech1k</a> testnet ecosystem</span>
<span class="faint">·</span>
<a class="ext" href="https://github.com/Tech1k/testnethub.com" target="_blank" rel="noopener">Source</a>
<a class="ext" href="https://github.com/Tech1k/testnethub.com/blob/HEAD/LICENSE" target="_blank" rel="noopener">Code AGPL-3.0</a>
<a class="ext" href="https://github.com/Tech1k/testnethub.com/blob/HEAD/LICENSE-CONTENT" target="_blank" rel="noopener">Content CC-BY-SA-4.0</a>
<span class="faint">· testnet only · coins have no value</span>
</div>
</footer>
</body>
</html>