-
Notifications
You must be signed in to change notification settings - Fork 267
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
Unable to decode onion error message from eclair to lnd #363
Comments
Hmm, actually if I just try to decode the raw error (instead of along with its framing), I'm able to properly decode it:
The odd thing here still though, is that the prepended length of the update was |
We're missing the The correct encoding should be:
|
When a ailure message includes a channel update field, this field must be encoded as: [ len | channel update] And we did not include the len field.
Ok, with a correct encoding lnd crashes when it receives the error (see log below).
|
If you run that test again with |
Working on a fix on our end. One question: this was triggered as we detected that the destination sent a temp chan failure, but there's an assumption in the code atm, that only any of the intermediate nodes will ever send that error (so we then try to prune that outgoing channel). In this case the dest in starblocks, so why's it sending a temp chan failure if the HTLC reached it? |
Or is it failing because it has too many incoming/accepted HTLC's already?
|
Closed by mistake... |
The failure is sent by endurance, not starblocks. Reason is that the channel is depleted (there are actually other non-depleted channels between endurance and starblocks) |
I'm curious why you think that the destination sent the error? |
That was just a hunch without the full logs.
If multiple channels are active, and an incoming HTLC request comes along, eclair will not just go ahead an utilize the available channel even if it wasn't the one specified in the onion payload? |
There is a TODO for that in the relayer ;-) |
Looked into it a bit more, and the crash above happend as we detected that the destination sent the error. I say this as the only way that the map lookup that led to the crash can fail, is if the destination sent the error. Still investigating on my side, but adding a patch to address this edge case for now. |
Yes, the crash above happens when it is the destination sends the failure message, not when it's a relaying a node. I've run the following tests locally: |
Lately, when I've been trying to send to/through starblocks on some of my nodes, my HTLC's keep getting rejected. I haven't been able to determine why exactly, as I can't decode the error message sent by eclair:
lnd
determines it's aFailTemporaryChannelFailure
, then tries to decode the message:Are y'all able to decode this?
The text was updated successfully, but these errors were encountered: