Bitcoin Node Stuck on "Waiting Close"

I have a “Waiting Close” channel which I couldn’t receive fundings. How can I resolve this issue???

I had tried to open a channel with 2M sats as capacity. However, before the channel was opened (still “opening” states), my umbrel had a problem. Then, I uninstalled umbrel’s app and re-installed. When I recovered a lightning node, I found that the channel states is “Waiting Close”. It has passed already for 3 weeks. but I have not yet received fundings.

node ID:
03284d4fa21022e7a59c

tx from on-chain:
6e788a23d59d03ba11cd2284e09d691aa95a0c2411c4e0259679e36f004b766e

channel point:
6b87710e0e018d14757a025ffa501a2cfb33345ed69eb211a11e4b3e376230e8:1

peer node pubkey:
035b1ff29e8db1ba8f2a4f4f95db239b54069cb949b8cde329418e2a83da4f1b30

I can’t find the channel point on mempool. What does it mean??? The channel didn’t success to open, but 2M sats was withdrowed from on-chain???

I think you need to wait for channel to be closed/force closed. This is defined my maturity heigh of block when it will expire you should get your funds…but 3weeks is indeed quite long…

go to umbrel settings->advanced settings->terminal->app->lightning node->type: “lncli pendingchannels”

and share output for that particular channel…

Thank you for your reply! The result of execute “lncli pendingchannels” was as follows.

“channel”: {
“remote_node_pub”: “035b1ff29e8db1ba8f2a4f4f95db239b54069cb949b8cde329418e2a83da4f1b30”,
“channel_point”: “6b87710e0e018d14757a025ffa501a2cfb33345ed69eb211a11e4b3e376230e8:1”,
“capacity”: “2000000”,
“local_balance”: “0”,
“remote_balance”: “0”,
“local_chan_reserve_sat”: “0”,
“remote_chan_reserve_sat”: “0”,
“initiator”: “INITIATOR_LOCAL”,
“commitment_type”: “ANCHORS”,
“num_forwarding_packages”: “0”,
“chan_status_flags”: “ChanStatusRestored”,
“private”: true,
“memo”: “”
},
“limbo_balance”: “0”,
“commitments”: {
“local_txid”: “”,
“remote_txid”: “”,
“remote_pending_txid”: “”,
“local_commit_fee_sat”: “0”,
“remote_commit_fee_sat”: “0”,
“remote_pending_commit_fee_sat”: “0”
},
“closing_txid”: “”,
“closing_tx_hex”: “”

The channel capacity is 2M sats. But both of local and remote balance are indicated “0”. Moreover, I couldn’t find a closing tx on the result. Can a channel partner execute channel force close on the situation???

I couldn’t find the channel point on mempool. What suggests the situation???

6b87710e0e018d14757a025ffa501a2cfb33345ed69eb211a11e4b3e376230e8:1

Never, ever just uninstall LND from umbrel when you have pending channels. You just removed every memory your node has about this channel, hence the 0 / 0 on local and remote balance.

You need to ask the peer to force-close, either by reaching out to them, or by initiating a Static Channel Backup (SCB).

Thank you for your reply! I will try to ask the peer to force-close. However, can the peer partner do force-close in the situation?

Yes, they can - and only they can. So you need to be a bit in a hurry to push them. If a disaster strucks their node, too, your funds will be at risk

Have a simila issue:

“total_limbo_balance”: “111307”,
“pending _open_channels”: ,
“pending_closing_channels”:
L1,
“pending_force_closing_channels”: [
“channel”: {
“remote_node_pub”: “02cc79b8d771cc79d323bd71e54ef1780cab50e7c0ef2a4beb625fc9dcbbcc6d24”,
“channel_point”: “ae2a57c6c4c895666610201274832641f4cb68683ede5ec0e367403a51d8f146:1”,
“capacity”: “500000”,
“local_balance”: “19121”,
“remotebalance: 479587’
“local_chan_reserve_sat”: “0”,
“remote_chan_reserve_sat”: “‘”,
“initiator”: “INITIATOR_LOCAL””
“commitment_type”: “ANCHORS”,
“num_forwarding_packages”: “0"”
“chan_status_flags”:
“private”: false,
“”,
“memo”:
“custom_channel data”: “’”
},
“closing_txid”: “162188c6c1550e15b31e54b7856ee389e070d67091d3c881bbd9c4503d1255eb”,
“limbo_balance”: “19121”,
“maturity height”: 905535,
“blocks_til maturity”: -10099,
“recovered balance”: “”,
“pending_htlcs”: ,
“anchor”: “LOST”

“anchor”: “LOST”
“channel”: {
“remote_node_pub”: “0318ac9faa9629e7da08819bc8fe0dd2ae3044d69b1b2283a63479acffeb968483”,
“channel_point”: “47502c2d3f077640cc2dd3f2cff14c671a0014646dc2dd51ed831d1f1345afbe:1”,
“capacity”: “500000”
“local_balance”: “92186”,
“remote_balance”: “406182”,
“local_chan_reserve_sat”:
“0"”
“remote_chan_reserve_sat”: “0”
“initiator”: “INITIATOR_LOCAL”,
“commitment_type”: “ANCHORS”,
“num_forwarding_packages”: “‘”,
“chan_status_flags”: “’”’
“private”: false,
“memo”: “”,
“custom_channel_data”: “'”
“closing_txid”: “cadd1ba641884044584827730e57b73ea fe5aa6ed819cc3688b3c7a1233a9793”,
“limbo_balance”:
92186"
“maturity height”: 906873,
“blocks_til maturity”: -8761,
“recovered_balance”: “°”,
“pending_htlcs”: [J.
“anchor”: “LOST”
“waiting_close_channels”:

What’s the issue, you need to elaborate a little more specific to get help.

These 19k are confirmed to the address bc1qp5kr3tevkr7mzfhrc2kn8ykr46st6q6q0y4x56uukw4wdd27m6sqq8zuhs which is yours. The 330 sats anchors are lost / swept by a sweeper bot.

Same here, your address bc1q3ttup6em9gv42s6m9qq5w9dkcyunay2xt93cpkhxgktdh2vdd44scaklwu holds the 92186 sats:

Umbrel lightning shows closing, and the status posted before are pending Closing

Ah, got it. Maturity on both pending channels FCs is a few thousand blocks ago, so your node should have swept the sats already.

Don’t remember 100%, but 90%ish likelihood is that your LND is upset that the anchors got stolen, and you need to remind it by republishing the closing tx:

Check out the following helptext:

lncli wallet publishtx -h
NAME:
   lncli wallet publishtx - Attempts to publish the passed transaction to the network.

USAGE:
   lncli wallet publishtx [command options] tx_hex

DESCRIPTION:
   
  Publish a hex-encoded raw transaction to the on-chain network. The 
  wallet will continually attempt to re-broadcast the transaction on start up, until it 
  enters the chain. The label parameter is optional and limited to 500 characters. Note 
  that multi word labels must be contained in quotation marks ("").
  

OPTIONS:
   --label value  (optional) transaction label

So you need the raw tx of both closing transactions, and rebroadcast them:
This is the first closing tx, you can get the raw hex from mempool:
https://mempool.space/api/tx/162188c6c1550e15b31e54b7856ee389e070d67091d3c881bbd9c4503d1255eb/hex
And the second:
https://mempool.space/api/tx/cadd1ba641884044584827730e57b73eafe5aa6ed819cc3688b3c7a1233a9793/hex

If you can, open two terminals! One to keep an eye on the logs, like

sudo docker logs lightning_lnd_1 -f -n 200 | grep -E "ae2a57c6c4c895666610201274832641f4cb68683ede5ec0e367403a51d8f146:1|162188c6c1550e15b31e54b7856ee389e070d67091d3c881bbd9c4503d1255eb"

and a second one to rebroadcast. This way, you will immediately see what LND takes in from your command here. Copy the first raw hex and append it to the command above, like this:

lncli wallet publishtx 0200000000010146f1d8513a4067e3c05ede3e6868cbf441268374122010666695c8c4c6572aae01000000007e932280044a0100000000000022002032aab8cf5696999c9ae69e2bdf5fcb1a9b7e67aeabd0a035d69c09b6589f675d4a01000000000000220020823230974434a7a1235cdd825e5d2bc53f9d933d5341c232e8392698f818c2ccb14a0000000000002200200d2c38af2cb0fdb126e3c2ad3392c3aea0bd0340792a6a6b9cb3aae6b55edea063510700000000002200203bc9bd70c698e4b885a31546bab504fc219382a9582bf6dd99bc0343d874e31e0400473044022051bd5727bd9685fab99a8e35705508638b7ac89c1e45fb3c4171a5eb5e79a6dc022048982d7e21fa677c3df171d953039d7a189ad0ea05931aab34613c2bd250138201483045022100957db4c8eff5cd46d7a2468fab55755a11a17b74428411396d9e5c7bfbab145a02205933aea1b1872867b601366a2edff1888c41fe073064fd5b7947283cd8674f0e014752210258892f416b3b19ec4429c7d74fdcd0af8cc5482f324254a512c2336a7e4a95ae21032f90f633bffa754e760ee79c8f060420c9aaf8e510414c97fcfbaa5b5cc1bdb552ae6e5f5720

In your terminal 1 window, you should see LND republishing the tx, ideally the sweeper waking up because LND recognises that these TX belong to you. Copy the results, so you have them in case nothing happens after a few blocks, and please only then share the logfile parts here.
I assume it’ll work, so firing the second in Terminal 2

lncli wallet publishtx 02000000000101beaf45131f1d83ed51ddc26d6414001a674cf1cff2d32dcc4076073f2d2c50470100000000f758d980044a010000000000002200202412a8b1dac9972e500a1be0df8bcabae4aa2bbf971da7e6cde75e9650144d994a010000000000002200204819867d9ae9f72246e298a701277764988915b76e9d47d406f0d4473229f8851a680100000000002200208ad7c0eb3b2a1955435b28014715b6c1393e9146596380dae64596dba98d6d6ba632060000000000220020f2b006318a4a9535d9a2f51b7c681d042638924ffe9179d467d1bbb4f576c72404004830450221009b1d34687d1cb8ad961db7c5aaae8362bee46a2d702bb3e0d063c2291544d9f202206f7d41a198ddeefbf06d19c455472fde0938d3f195a94efbbdf9fd1d5ca3b9a20147304402203cab113d75afa349d9fb6636d106990aa67db8568e533d475f698f6682aac4da0220746aed8e948cdedf8a08b0172e0eb997eb70942f968f68532174bbca8db3a50b0147522102e12bd5756d0799d00f51ae02785eb76aea5f03af6876a7350869c2fcf99ff140210316ea105618a274952f12dec0bec6c754851fa89e85be6306f44a1dcdacd26c6152ae1eb50820

Lmk if this works

The first one seems to be working

Cool. Check the UI if it’s still closing. Or lncli pendingchannels. If it still acts up, restart (never reinstall!) the LND container, or the whole node. This will cause LND to rebroadcast it again. Since it is now known as it’s own UTXO, it should work though.

I had to run like this: sudo docker exec -it lightning_lnd_1 lncli wallet publishtx 02000000000……..
But turned out I was chasing a ghost all day. The tx was listed as being in limbo but was actually spent.