Lightning channel is in unconfirmed open state

Unconfirmed channel open

So, what happened? A couple of weeks back I opened two new channels, 5mBit each, and waited for it to open. Next day it was still waiting for confirmation, so I left it and forgot about it. Two weeks later I remembered, and checked, and the channels were still in ‘Pending’ state.

1
raspberrypi:~ $ lncli pendingchannels
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"total_limbo_balance": "0",
"pending_open_channels": [
{
"channel": {
"remote_node_pub": "0242a4ae0c5bef18048...391418d71ed394784373f41e4f3",
"channel_point": "0e14ce8443f1b54bf6f7609...4b14e1b434a6b68ef66a8:1",
"capacity": "500000",
"local_balance": "226520",
"remote_balance": "250000",
"local_chan_reserve_sat": "5000",
"remote_chan_reserve_sat": "5000",
"initiator": "INITIATOR_LOCAL",
"commitment_type": "STATIC_REMOTE_KEY"
},
"confirmation_height": 0,
"commit_fee": "23480",
"commit_weight": "724",
"fee_per_kw": "32432"
}
}

I wanted to close the channels, but that is not possible. The transactions are submitted to the MemPool and cannot be ‘removed’ from there. Nor cancelled. The only two options that I could find was to do a Replace By Fee (RBF) or a Child Pays For Parent (CPFP) transaction.

Running bumpfee

With LND on Raspiblitz, we have the bumpfee option for RBF, which looks like this:

1
2
3
4
raspberrypi:~ $ lncli wallet bumpfee \
--sat_per_byte 24 \
0e14ce8443f1...c4b14e1b434a6b68ef66a8:1
[lncli] rpc error: code = Unknown desc = the passed output doesn't belong to the wallet

As you can see, this gives me an rpc error, a rather unhelpful one at that. I had no idea what to do about this, so I moved on…

To open a new channel which will replace the old channel:

1
2
3
4
lncli openchannel \
--sat_per_byte 24 \
--min_confs 0 \
02dfdcca40725ca2...58ce4f19e5c178da09f3 476520 0

I confess I’m not sure what this really does, despite reading a few bits on the web, but it appeared that I ended up with two channels pending, which wasn’t the intention.

At this point, I called it a night. When I logged in in the morning, there were no more pending channels and everything had gone through. Hmmm…

So, what happened?

I think the reason that the original transactions could not get confirmed is that the automatically set fee rate was low and then, with a rapid bull market, the mempool size was increasing and that meant my transactions had fallen low on the list of priorities. The night when they did go through, there was in fact a dip in the mempool size and that, I’m guessing, is why they became ‘Confirmed’ transactions.

Useful information about this: