Lnd: Track Failed Forward payment - strange error messages

Created on 20 May 2020  路  3Comments  路  Source: lightningnetwork/lnd

Background

Just wanted to report some strange outputs of my RC1 testing.
I don't get the exception that I got here https://github.com/lightningnetwork/lnd/issues/4233- anymore. But I sometimes get these replays :
```
res_id = 112
incoming_channel_id: 681-----161025
outgoing_channel_id: 675-----45
incoming_htlc_id: 113
timestamp_ns: 158----40198
event_type: FORWARD
link_fail_event {
info {
incoming_timelock: 631048
outgoing_timelock: 631013
incoming_amt_msat: 502
outgoing_amt_msat: 500
}
wire_failure: AMOUNT_BELOW_MINIMUM
failure_detail: NO_DETAIL
failure_string: "AmountBelowMinimum(amt=500 mSAT, update=(lnwire.ChannelUpdate) {\n Signature: (lnwire.Sig) (len=64 cap=64) {\n -------- d 5a 34 41 |L.4Z........MZ4A|\n },\n ChainHash: (chainhash.Hash) (len
=32 cap=32) 000000000019d6689c----- 26f,\n ShortChannelID: (lnwire.ShortChannelID) 614066:1923:1,\n Timestamp: (uint32) 1589914668,\n MessageFlags: (lnwire.ChanUpdateMsgFlags) 00000001,\n ChannelFlags: (lnwire.
ChanUpdateChanFlags) 00000001,\n TimeLockDelta: (uint16) 35,\n HtlcMinimumMsat: (lnwire.MilliSatoshi) 1000 mSAT,\n BaseFee: (uint32) 1,\n FeeRate: (uint32) 1,\n HtlcMaximumMsat: (lnwire.MilliSatoshi) 1163350000 mSAT,\n ExtraOpaqueData: ([]uint8){\
n }\n}\n"
}
````
(I've deleted some text form the chainhas.Hash and the lnwire.Sig, for security)
Does it suppose to look like that? it looks as failure_string is not parsed correctly

Your environment

lnd v0.10.1 RC1

@carlaKC

question

All 3 comments

The failure string you're getting here is the dump of the message that will have been sent to your peer to tell them that the payment amount was below what you expected. It contains a channel update (messages which are also gossiped to the whole network), which is why it has a lot of information in it . The signature is just your signature on that error so your peer knows the update comes from you, so it's not a security leak.

It's not a pretty error, but it gives you all the information you could possibly want about the error, included for completeness/debugging more than for actual parsing. The failure_detail and wire_failure provide all the information required for programmatic use.

Closing as a question, fee free to reopen if something is unclear :)

Thank you @carlaKC indeed answered my question. I'll contact you in Slack if I have more

Was this page helpful?
0 / 5 - 0 ratings

Related issues

joostjager picture joostjager  路  3Comments

qubenix picture qubenix  路  3Comments

sunnya97 picture sunnya97  路  3Comments

whizz picture whizz  路  3Comments

ronaldvdmeer picture ronaldvdmeer  路  4Comments