Unexpected and unexplainable error
See original GitHub issueFirst of all: sendinvoiceless
is a really cool and useful feature that I’ve implemented in my lightning game
I run 2 nodes like this: myshtery <-> Bitkoins.nl <-> 7 other channels
Myshtery is only connect to Bitkoins.nl. I have paid “Ship of Theseus” via Bitkoins.nl a few day ago 1000 satoshi with sendinvioiceless
and it went ok over 4 hops and a small fee.
I had to pay “Ship of Theseus” again today but it didn’t work while it’s a very well connected node and it worked before. Error message:
error: {'message': 'Sending failed'}\",)"
I tried increasing the fee but nothing worked. I tested paying another node ID with Bitkoins.nl and that went fine.
I then decided to try to pay with myshtery but since myshtery is only connected to Bitkoins.nl it should have made it harder not easier to pay. However, the payment went smooth (via Bitkoins.nl obviously) over 6 hops and a small fee. After that I tried to pay again via Bitkoins.nl but it didn’t work. Restarted Bitkoins.nl but that also didn’t help.
What on Earth could cause this situation?
c-lightning: “v0.8.0-1-gb14b2b0”
Issue Analytics
- State:
- Created 4 years ago
- Comments:8 (4 by maintainers)
Top GitHub Comments
@darosior I’ve set
cltv-final
to 20 in.lightning/config
and I also see that value withlightning-cli listconfigs
and it worked! I got:"1000000 msat delivered with 1010 msat fee over 7 hops"
Thanks both of you for all the help!
Closing this issue.
I was having problems similar to what was described using circular payments borrowing logic from
sendinvoiceless.py
on a different project that traced back to an issue with thecltv-final
setting.By default, C-Lightning will only accept 10 blocks as the final hop cltv for the route back to oneself.
sendinvoiceless.py
checks that boot arg and uses that as the final routing hop cltv. However, if a block arrives during the operation (which can span a couple seconds to execute, depending), the final hop on the circular route back to itself will get rejected and the payment will fail.After padding that
cltv-final
value on the route construction (the equivalent ofsetup_routing_fees()
insendinvoiceless.py
) by 3 blocks, I no longer had the same intermittent failures. It looks like the script has an option to set that value forsendinvoiceless.py
which can be greater than the defaultcltv-final
boot arg.