Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xpay: one channel with min htlc > payment amount fails entire payment #8045

Open
JssDWt opened this issue Jan 30, 2025 · 0 comments
Open

xpay: one channel with min htlc > payment amount fails entire payment #8045

JssDWt opened this issue Jan 30, 2025 · 0 comments
Assignees
Milestone

Comments

@JssDWt
Copy link
Contributor

JssDWt commented Jan 30, 2025

cln v24.11.1
xpay-handle-pay=true

I was paying a node that had a channel with 1000 sat min_htlc. The payment was 10 sat. Upon encountering this constraint, the entire payment failed. The pay plugin was able to pay the same invoice through another channel.

Suggestion: remove the channel in question from pathfinding and try again?

Payment fails with Amount 10000msat below minimum 1000000msat across 871662x1524x0/1

2025-01-30T17:06:07.685Z DEBUG   plugin-cln-xpay: Got command pay
2025-01-30T17:06:07.685Z INFO    plugin-cln-xpay: Redirecting pay->xpay
2025-01-30T17:06:07.686Z DEBUG   plugin-cln-xpay: Got command preapproveinvoice
2025-01-30T17:06:07.688Z DEBUG   plugin-cln-xpay: Got command askrene-create-layer
2025-01-30T17:06:07.689Z DEBUG   plugin-cln-xpay: notify msg debug: getroutes from 02c811e575be2df47d8b48dab3d3f1c9b0f6e16d0d40b5ed78253308fc2bd7170d to 02356bca6f6bf2da33eb01e4b754a9fc575552e87cfd765893b79f83983fead301
2025-01-30T17:06:07.689Z DEBUG   plugin-cln-xpay: 4: getroutes from 02c811e575be2df47d8b48dab3d3f1c9b0f6e16d0d40b5ed78253308fc2bd7170d to 02356bca6f6bf2da33eb01e4b754a9fc575552e87cfd765893b79f83983fead301
2025-01-30T17:06:07.690Z DEBUG   plugin-cln-xpay: Got command getroutes
2025-01-30T17:06:07.691Z DEBUG   plugin-cln-xpay: Got command listpeerchannels
2025-01-30T17:06:09.405Z DEBUG   plugin-cln-askrene: Adding auto.localchans
2025-01-30T17:06:09.405Z DEBUG   plugin-cln-askrene: Adding auto.sourcefree
2025-01-30T17:06:09.405Z DEBUG   plugin-cln-askrene: notify msg unusual: Amount 10000msat below minimum 1000000msat across 871662x1524x0/1
2025-01-30T17:06:09.405Z INFO    plugin-cln-askrene: \"1/cln:xpay-as-pay#1407/cln-xpay:getroutes#43/cln:getroutes#1412\": Amount 10000msat below minimum 1000000msat across 871662x1524x0/1
2025-01-30T17:06:09.405Z DEBUG   plugin-cln-askrene: notify msg unusual: Flow 0/1 was too constrained (Amount 10000msat below minimum 1000000msat across 871662x1524x0/1) so removing it
2025-01-30T17:06:09.405Z INFO    plugin-cln-askrene: \"1/cln:xpay-as-pay#1407/cln-xpay:getroutes#43/cln:getroutes#1412\": Flow 0/1 was too constrained (Amount 10000msat below minimum 1000000msat across 871662x1524x0/1) so removing it
@rustyrussell rustyrussell added this to the v25.02 milestone Feb 4, 2025
@rustyrussell rustyrussell self-assigned this Feb 6, 2025
rustyrussell added a commit to rustyrussell/lightning that referenced this issue Feb 6, 2025
In particular, if the total amount we're sending is less than the minimum amount
the channel insists on, we can eliminate it.

This fixes the problem that we're really trying to send a de-minumus
amount (rather than the more obscure case where we divide the amount
and then it is below the minimum).

After trying several other approaches, this was by far the cleanest!

Reported-by: https://github.com/JssDWt
Fixes: ElementsProject#8045
Changelog-Fixed: xpay: don't simply give up if our total amount is less than htlc_minimum_msat on some channel.
Signed-off-by: Rusty Russell <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants