lnd: Payment stuck in IN_FLIGHT state
Background
Creating as a replacement for this ticket.
We have a payment that is stuck in the IN_FLIGHT state. One of the htlcs is stuck in the IN_FLIGHT state despite having an expiry that is in the past. When listing channels we see no pending htlcs for the involved channel.
Your environment
- version of
lnd:0.11.1-beta commit=v0.11.1-beta - which operating system (
uname -aon *Nix):Linux nodes-lnd-667ff844cc-2krmj 4.19.112+ #1 SMP Fri Sep 4 12:00:04 PDT 2020 x86_64 Linux - version of
btcd,bitcoind, or other backend:bitcoind 0.17.1 - any other relevant environment details
Steps to reproduce
Initiate an outgoing payment (loop operation in our case). Get unlucky, and get one of the htlcs to get stuck in the IN_FLIGHT state beyond the expiry of the htlc.
Expected behaviour
Payment should FAIL when expiry of htlcs is breached.
Actual behaviour
Payment gets stuck in the IN_FLIGHT state after expiry of htlcs. In addition, channel shows no pending htlcs (in fact our node shows 0 pending htlcs).
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 1
- Comments: 26 (15 by maintainers)
Hey, thanks for explaining here. IIUC, it seems like we have a
terminal error = no more shards sent, but still wait on any existingIN_FLIGHTshards type approach? If a payment ends up with a stuck shard, as is the case here, we will just end up waiting till CLTV expiry notification (I assume from the Switch). At this point we will be able to consider the shard failed and report the payment as failed to the user so they can retry.I fully agree with your summary, @carlaKC.
I have a local branch for user initiated payment “cancellation” via RPC. I might have some questions soon for you on that @halseth, though it was surely helped by understanding this better.
Going to pick this one up!
@lukaszsamson Do you still have the full logs around when this happened? Would be very helpful if I could take a look at them. Feel free to reach out to me on keybase (@halseth) or the LND slack (@johanth)