unidexai.xyz

Why Does a Customer’s Transaction Have Confirmations but Your Node Shows Zero?

The most common cause is that your node is not connected to the same set of peers as the customer’s wallet, or your node has fallen behind the network’s current best blockchain. The transaction is real and confirmed on the global network, but your local copy of the blockchain has not yet received or validated those blocks. This is a synchronization problem, not a transaction problem.

How Confirmations Work on the Network vs. on Your Node

A confirmation is simply the number of blocks built on top of the block that contains the transaction. When a customer’s wallet shows, say, three confirmations, that means three blocks have been mined after the transaction’s block. Your node will see those same confirmations once it has downloaded and validated those three blocks.

If your node shows zero confirmations, it means one of the following:

Step-by-Step Diagnosis

Do these in order. Stop when the cause is found.

1. check your node’s block height

Open your node’s debug console or status page. Compare its current block height to a public block explorer (like mempool.space or blockstream.info). If your node’s height is lower, it is behind the network.

If behind: Your node needs to catch up. This can take minutes or hours depending on how far behind it is, your internet speed, and your hardware. Do not restart the node unless you have to - restarting can slow catching up.

2. check peer connections

Your node might be connected only to a small or slow set of peers. In the debug console, run getpeerinfo (Bitcoin Core) or the equivalent for your node software. Look for the synced_headers and synced_blocks values. If they are far below the network height, your peers are not giving you the latest data.

Solution: Add more reliable peers. You can add specific trusted nodes manually, or simply wait - most node software will find new peers over time.

3. Check for a Fork or Orphan Block

If your node’s height matches the network but the transaction still shows zero confirmations, your node may be on a different chain fork. This is rare for a well-connected node, but possible during a chain reorganization or if your node was offline for a period.

Compare the block hash at your node’s tip with a block explorer. If they differ, your node is on a stale chain. You may need to restart your node with the -reindex or -reindex-chainstate flag (Bitcoin Core). This forces your node to re-validate all blocks from the last checkpoint. Expect this to take significant time.

4. Check the Transaction in Your Node’s Mempool

Even if the transaction is confirmed on the network, your node may still have it in its mempool as unconfirmed if your node never received the block that confirmed it. Run getmempoolentry <txid> or the equivalent. If the transaction is in the mempool, your node has not yet processed the confirming block.

Solution: Let your node catch up. Do not manually remove the transaction from the mempool - it will be cleared automatically once the block arrives.

Why this happens in practice

Node was offline or restarted

If your node was shut down for any period, it will be behind. On restart, it begins downloading blocks from the last known tip. During that catch-up window, any transaction confirmed while the node was offline will show zero confirmations locally.

Slow or throttled internet

A node behind a slow connection or a router that throttles peer-to-peer traffic can fall behind. This is common on residential connections with high upload usage.

Firewall or port forwarding issues

If your node cannot accept incoming connections, it relies entirely on outgoing connections. Outgoing peers may be less reliable or slower. Check that your node’s port (default 8333 for Bitcoin) is reachable.

Using a pruned node

A pruned node stores only a limited number of recent blocks. It can still validate new blocks and show confirmations, but if it prunes the block containing the transaction before you check, it will not be able to show the confirmation history. The transaction will appear as if it never happened. This is rare but possible if you check long after the payment.

What to Do About the Payment

If your node shows zero confirmations but the customer’s wallet and a block explorer show confirmations, the payment is valid on the network. The issue is only with your node’s local view.

Do not mark the invoice as unpaid. The transaction has occurred. Instead:

Preventing This in the Future

The short version: a difference in confirmation counts between your node and the network means your node is out of sync. The transaction is fine. Fix the node, not the invoice.

Not financial advice. unidexai.xyz publishes market data and general information about digital assets. Crypto assets are volatile and you can lose everything you put in. Nothing here is a recommendation to buy, sell or hold, and we make no price predictions.

Prices are sourced from third parties and may be delayed or wrong. Verify anything you intend to act on against a primary source.

Back to crypto payments