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_messagesFix: 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.