LND Circular Rebalancing - Fix No Route and Fee Errors
What Is LND Circular Rebalancing?
Circular rebalancing moves liquidity from outbound-heavy channels to inbound-heavy ones by routing a payment back to yourself through multiple hops. It costs routing fees but restores channel balance.
Common Errors
- no route found: insufficient balance along route
- payment failed: TEMPORARY_CHANNEL_FAILURE
- circular payment rejected by node policy
- fee too high: rebalance cost exceeds threshold
Manual Circular Rebalance
# Step 1: Create invoice on your own node
lncli addinvoice --amt 100000 --memo rebalance
# Step 2: Pay it via specific outbound channel
lncli payinvoice --outgoing_chan_id <chan_id> <payment_request>
# Step 3: Verify balances after
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']}: {ratio:.0%} local")"Using bos (Balance of Satoshis)
# Install bos npm install -g balanceofsatoshis # Rebalance: push 100k sats from chan A to chan B bos rebalance \ --out <outbound_peer_pubkey> \ --in <inbound_peer_pubkey> \ --amount 100000 \ --max-fee 500 # Find best rebalance paths bos rebalance --list-candidates
Reduce Rebalancing Cost
- Lower --max-fee and let bos find cheap paths
- Use charge-lnd to auto-adjust fees and reduce manual rebalancing
- Only rebalance channels with >80% or <20% local balance
- Time rebalances during low-fee periods (weekends)
Node management getting complex? DM on Nostr for a custom automation setup.