LND Circular Rebalancing - Fix No Route and Fee Errors
What Is LND Circular Rebalancing?
Circular rebalancing sends a payment from your node, through external routes, back to yourself — shifting liquidity from outbound-heavy channels to inbound-heavy ones without closing channels.
Common Errors
- no route found for circular payment
- insufficient local balance to initiate rebalance
- payment loop detected: same channel appears twice in route
- rebalance fee exceeds maximum allowed
Manual Circular Rebalance via lncli
# Find a route from outbound channel to inbound channel
# Get channel IDs
lncli listchannels | python3 -c "
import json,sys
for c in json.load(sys.stdin)['channels']:
ratio = int(c['local_balance'])/(int(c['capacity'])+1)
print(f"{c['chan_id']} bal:{ratio:.0%} {c['remote_pubkey'][:16]}")
"
# Send circular payment (requires known route)
lncli sendpayment --dest <your_node_pubkey> \
--amt 100000 \
--last_hop <inbound_channel_peer_pubkey> \
--outgoing_chan_id <outbound_chan_id> \
--max_fee_percent 0.5Using bos (Balance of Satoshis) for Rebalancing
# Install bos npm install -g balanceofsatoshis # Rebalance: move 500k sats from outbound to inbound channel bos rebalance \ --out <outbound_peer_pubkey> \ --in <inbound_peer_pubkey> \ --amount 500000 \ --max-fee-rate 500 # Dry run to check fees first bos rebalance --out <pub> --in <pub> --amount 500000 --dryrun
Fix: No Route Found
- Reduce rebalance amount (try 100k instead of 1M sats)
- Increase max fee (--max-fee-rate 1000)
- Try different peer combinations
- Check channel is active: lncli listchannels | grep active
Stuck with unbalanced channels? DM on Nostr for a rebalancing strategy.