CLN Onion Message Errors - Fix BOLT-12 Routing and Offer Issues

CLN Onion Message Errors - Fix BOLT-12 Routing and Offer Issues


What Are CLN Onion Messages?

Onion messages are a Bolt-12 feature in Core Lightning that enable encrypted peer-to-peer messaging over the Lightning network without requiring a payment channel. Used for offers, invoice requests, and BOLT-12 flows.

Common Errors

  • onion_message: no route to destination
  • peer does not support onion_messages feature
  • fetchinvoice: timeout waiting for invoice reply
  • offer expired or invalid blinded path

Check Onion Message Support

# Verify your node has onion messages enabled
lightning-cli getinfo | python3 -c "
import json,sys; d=json.load(sys.stdin)
feats = d.get('our_features',{})
print('node_announcement:', feats.get('node_announcement',''))
"

# Feature bit 39 = onion_messages

Fix: Enable Onion Messages

# In lightningd config
experimental-onion-messages
experimental-offers

# Restart lightningd after adding these flags

Fetch Invoice via Offer (BOLT-12)

# Fetch a BOLT-12 invoice from an offer
lightning-cli fetchinvoice lno1... 1000

# If timeout: peer may not support onion messages
# Try with a direct peer that supports the feature

Debug Routing Issues

# Check if peer supports onion messages
lightning-cli listpeers | python3 -c "
import json,sys
for p in json.load(sys.stdin)['peers']:
  feats = str(p.get('features',''))
  om = 'yes' if '27' in feats or '39' in feats else 'no'
  print(p['id'][:20], 'onion_msg:', om)
"

BOLT-12 issues? DM on Nostr for help with offers and onion message routing.

Report Page