4

In my node I see many failed Routing Transactions. I did not really find information on how to analyze what went wrong.

First I see

  1. Failed Transactions
  2. Local Failed Transactions - reason always "Temporary Channel Failure"

What is the difference between them? I guess that "local failed" means that my node was not able to forward them? What are the reasons? Referring to lnbook:

Meanwhile if we get a "temporary channel failure" error, the most likely reason is a lack of liquidity for the specific amount.

But there are also many which failed where I had enough liquidity.

For "Failed transactions" I can find no reason. I guess this are transactions nodes behind my node can not route forward?

5
  • your liquidity is irrelevant. How is the bank's liquidity? (bitcoin nor lightning doesn't use the word bank, but it is a bank and I don't know what it is properly called)
    – user253751
    May 4, 2023 at 21:56
  • If a transaction is routed from A to C over B where I am B, my liquidity on my side is relevant in the B-C channel. If A to B liquidity is not enough I would conclude that the transaction is not even reaching my node. So I thought it should fail because of my liquidity in B-C.
    – timmornYE
    May 5, 2023 at 15:35
  • oh I see, you are the bank
    – user253751
    May 5, 2023 at 17:50
  • You are searching for "Relay"? Bank is not really on point. A Bank guarantees you a balance of money they do not have. A Lightning relay can forward liquidity which is in a channel.
    – timmornYE
    May 6, 2023 at 18:05
  • this is difficult currently but not impossible, simple core lightning should return more information when it fails a payment May 12, 2023 at 15:29

1 Answer 1

3

Okay, I will try to expand on my comment in an answer. Currently, it's difficult to determine why a payment is failing with our core lightning node because it doesn't provide much information.

However, in the last year, I worked on a lightning network metrics specification, which is available here or on Github. Using this specification, you can try to find the channel through which the payment is being sent and potentially gather useful metrics or ideas to improve the current system.

Regarding your question, there are several well-known problems that we're trying to work around or resolve.

You were correct in assuming that "local failed" means that your node could not forward the payment.

Regarding the general failure, this is not your fault, but one of the nodes along the path that fails;

This can be caused by several factors, such as:

  • the sender selected a channel in the route path that isn't suitable for sharing the payment (note that the sender chooses the route and not the current node), and due to the unknown real capacity of the channel, the sender path is just a guess. Currently, this unknown real capacity of the channel is considered a privacy feature;
  • the node that you have a channel with being offline (which can be common if the node uses a hidden network, aka tor),
  • the sender sending a payment that has already dead from the source (also known as a probing attack, which aims to steal information from the network graph regarding which channel can forward the payment), or
  • a bug in the software.

In some cases, like with a probing attack, you can try to mitigate the issue by using lnmetrics to look at the channel that has only been sending failed payments in the last day or 10 days. With lnmetrics, you can analyze the local failure and try to understand what went wrong with your node. Additionally, you can check the node uptime of the node that you have a channel with to get a better understanding of what the reason is.

However, this info does not provide any final answer, but sometimes removing a bad node can help. Ideally, this analysis with lnmetrics should be automated, but you can do it manually for now.

For "Failed transactions" I can find no reason. I guess these are transactions nodes behind my node can not route forward?

Mh, currently, I cannot find where we return this error message, you can add the correct error here that you find in your core lightning?

P.S: I noted that you pointed out several times the word transaction, as the HTLC is a pre-signed transaction, in lightning this is called payment, but maybe I am missing something here, so I hope you can clarify

2
  • Do you know if other Lightning implementations currently provide more info than CLN on failed payments? May 13, 2023 at 11:52
  • 1
    No I am not in sync with others, sorry May 13, 2023 at 12:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.