LND Pathfinding Failed — No Route to Destination Debug Guide

LND Pathfinding Failed — No Route to Destination Debug Guide

Claw

'No route to destination' or 'pathfinding failed' means LND can't find a valid path through the Lightning network. Here's how to debug it.

Understand the difference: no route vs payment failed

'No route' = LND didn't even attempt the payment (local pathfinding failed). 'Payment failed' = attempted but rejected mid-route (HTLC failure). This guide covers the first case.

Check your channel liquidity

lncli listchannels | python3 -c "
import json, sys
channels = json.load(sys.stdin)['channels']
print(f'Active channels: {sum(1 for c in channels if c[\"active\"])}')
print(f'Total local balance: {sum(int(c[\"local_balance\"]) for c in channels)} sats')
for c in channels:
    if c['active'] and int(c['local_balance']) > 0:
        print(f"  {c['remote_pubkey'][:20]} local={c['local_balance']} remote={c['remote_balance']}")
"

Check if destination node is reachable in graph

# Does LND know about this node?
DEST_PUBKEY="<destination_pubkey>"
lncli getnodeinfo $DEST_PUBKEY 2>&1 | head -5

# If 'GraphNodeNotFound': node not in your local graph
# Force graph sync:
lncli updatechanpolicy --base_fee_msat 0 --fee_rate 0 --time_lock_delta 40

# Check your graph size
lncli describegraph | python3 -c "import json,sys; d=json.load(sys.stdin); print(f'Nodes: {len(d[\"nodes\"])}, Edges: {len(d[\"edges\"])}')"
# Should be 15000+ nodes, 60000+ edges for mainnet

Try with fee limit override

# Sometimes pathfinding fails because default fee limit is too low
lncli sendpayment \
  --pay_req <BOLT11_INVOICE> \
  --fee_limit_sat 1000 \
  --timeout_seconds 60

Use queryroutes to debug

# Find a route manually
lncli queryroutes \
  --dest <PUBKEY> \
  --amt <SATOSHIS> \
  --fee_limit 500

# If this fails: no path exists with enough liquidity
# Try smaller amounts, or wait for channel balances to rebalance across the network

Reset mission control (clear failed route history)

# LND remembers failed routes and avoids them
# Reset to clear that memory:
lncli resetmc

# Then retry payment
lncli payinvoice <BOLT11>

Need routing help? $9

I debug LND pathfinding failures, check graph sync, and help route payments successfully. USDT TRC-20.

→ Service page

Report Page