lnd: [bug]: edge not found reported for newly opened channel

Background

Did a bos balanced channel open nearly two weeks ago. Opening TX was stuck in the mempool until today. The TX has been confirmed but the channel is in a very strange state. lncli getchaninfo <chan_id> returns:

[lncli] rpc error: code = Unknown desc = edge not found

Here is the opening transaction.

Thunderhub shows the channel, but with missing information. Screenshot 2023-02-19 at 21 05 28

Any idea what’s going on here?

Your environment

  • version of lnd: 0.15.5-beta

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 53 (4 by maintainers)

Most upvoted comments

I agree, there is no good indicator for the expiry of the channel. If we add that, it might also make it more clear to the channel initiator that they’re expected to get the channel confirmed. I created a new issue: https://github.com/lightningnetwork/lnd/issues/7434.

The reason the channel didn’t operate as expected is that after 2016 blocks of the funding transaction not confirming, the other node will forget about it (=delete their data), since they don’t have any funds at stake (DoS countermeasure, defined here: https://github.com/lightning/bolts/blob/master/02-peer-protocol.md#requirements-4):

A non-funding node (fundee): SHOULD forget the channel if it does not see the correct funding transaction after a timeout of 2016 blocks.

We are trying to make that more apparent in the pending channels output with https://github.com/lightningnetwork/lnd/issues/7434 and are also addressing some issues around too low fees here: https://github.com/lightningnetwork/lnd/issues/7512

Normally it’s not a big problem if the other node forgets the channel, as you can just force close (annoying and costs some chain fees, but no funds at risk). The only real risk to your funds is if you delete your channel state, which abandonchannel does. The flag that you had to add (which is not mentioned in the example above by the way, so you did find out about it) has the following description:

--i_know_what_i_am_doing  override the requirement for lnd needing to be in dev/debug mode to use this command; when setting this the user attests that they know the danger of using this command on channels and that doing so can lead to loss of funds if the channel funding TX ever confirms (or was confirmed)

So it is built for the situation where the funding transaction DOES NOT confirm and you want to get rid of the channel as it will never open.

The way SCBs operate is described in our safety guideline. I’m not very happy with the naming choice, as “backup” does imply more than it actually does. But that’s hard to change across all code base and implementations, so we’re kind of stuck with it. Had I been there when it was originally implemented, I would’ve voted for “emergency negotiation contact info” or something like that, to highlight the fact that you need the other party’s cooperation.

So I’m really sorry, but unless you find a way to contact the remote peer or find a backup of your channel DB, there is nothing that can be done (that I know of).

Ok, I see. Is this one for Windows 10: chantools-windows-386-v0.10.6.zip?