I run lnd on my node and sometimes see messages like this:
[INF] CNCT: ChannelArbitrator(CHANPOINT): immediately failing htlc=HTLCID from remote commitment
The corresponding close transaction sent out by my node does not contain any HTLC output. I’d like to understand more about this situation, and what I can do to avoid this.
- How does the HTLC end up in my peer’s commit transaction?
- Why does my node know about it, but doesn’t have the HTLC in the local commitment transaction?
- Why isn’t it necessary to recover the HTLC funds as part of the close transaction?
- What went wrong, i.e. how can I help avoid this kind of channel closes?
This is the corresponding code in lnd: https://github.com/lightningnetwork/lnd/blob/cd8a87c0daf569404f6bcf8e839524f0e639d881/contractcourt/channel_arbitrator.go#L1806
Related to Under what conditions would lightning channels be force closed automatically?
