How to recover lightning wallet fund (after crash)?

Hi there,

Early december my RPi seemed to have had a failure.
Not sure if related to a power outage or simply the SD Card that failed.

I realized that only after what was probably a few days.
I tried my best but can’t seem to get back on track properly.

  1. I changed the SD Card with a new installation of Umbrel
  2. I downloaded the Bitcoin chain from scratch, it took almost a week
  3. I reinstalled the Lightning node app
  4. I input my 24-words seed
  5. I either use my local backup file (from a couple weeks before the failure) or one of the backup file from remote umbrel directly
  6. It manages to find some fund in the Bitcoin Wallet :+1:t3:
  7. It fails to give me the Lightning Wallet funds :-1:t3:

I do see some channels listed. They display :

  • 0 sats on both end/sides
  • Status is “Closing”
  • Capacity seems to be correct amount when I click onto each channel listed

And no longer how long I wait (even more than two days) nothing happens.

Could someone provide some clue on what I should try next?
Thanks in advance for anyone who can help!

1 Like
umbrel@umbrel:~/umbrel $ ./scripts/app compose lightning exec lnd lncli pendingchannels
{
    "total_limbo_balance":  "136521",
    "pending_open_channels":  [],
    "pending_closing_channels":  [],
    "pending_force_closing_channels":  [
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:0",
                "capacity":  "150000",
                "local_balance":  "5965",
                "remote_balance":  "0",
                "local_chan_reserve_sat":  "0",
                "remote_chan_reserve_sat":  "0",
                "initiator":  "INITIATOR_REMOTE",
                "commitment_type":  "STATIC_REMOTE_KEY",
                "num_forwarding_packages":  "0",
                "chan_status_flags":  "",
                "private":  true,
                "memo":  ""
            },
            "closing_txid":  "zzz",
            "limbo_balance":  "5965",
            "maturity_height":  821983,
            "blocks_til_maturity":  -1213,
            "recovered_balance":  "0",
            "pending_htlcs":  [],
            "anchor":  "LIMBO"
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:1",
                "capacity":  "500000",
                "local_balance":  "38106",
                "remote_balance":  "0",
                "local_chan_reserve_sat":  "0",
                "remote_chan_reserve_sat":  "0",
                "initiator":  "INITIATOR_LOCAL",
                "commitment_type":  "STATIC_REMOTE_KEY",
                "num_forwarding_packages":  "0",
                "chan_status_flags":  "",
                "private":  true,
                "memo":  ""
            },
            "closing_txid":  "zzz",
            "limbo_balance":  "38106",
            "maturity_height":  821956,
            "blocks_til_maturity":  -1240,
            "recovered_balance":  "0",
            "pending_htlcs":  [],
            "anchor":  "LIMBO"
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:0",
                "capacity":  "500000",
                "local_balance":  "5871",
                "remote_balance":  "0",
                "local_chan_reserve_sat":  "0",
                "remote_chan_reserve_sat":  "0",
                "initiator":  "INITIATOR_REMOTE",
                "commitment_type":  "ANCHORS",
                "num_forwarding_packages":  "0",
                "chan_status_flags":  "",
                "private":  true,
                "memo":  ""
            },
            "closing_txid":  "zzz",
            "limbo_balance":  "6201",
            "maturity_height":  822466,
            "blocks_til_maturity":  -730,
            "recovered_balance":  "0",
            "pending_htlcs":  [],
            "anchor":  "LIMBO"
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:0",
                "capacity":  "150000",
                "local_balance":  "86249",
                "remote_balance":  "0",
                "local_chan_reserve_sat":  "0",
                "remote_chan_reserve_sat":  "0",
                "initiator":  "INITIATOR_LOCAL",
                "commitment_type":  "STATIC_REMOTE_KEY",
                "num_forwarding_packages":  "0",
                "chan_status_flags":  "",
                "private":  true,
                "memo":  ""
            },
            "closing_txid":  "zzz",
            "limbo_balance":  "86249",
            "maturity_height":  821941,
            "blocks_til_maturity":  -1255,
            "recovered_balance":  "0",
            "pending_htlcs":  [],
            "anchor":  "LIMBO"
        }
    ],
    "waiting_close_channels":  [
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:1",
                "capacity":  "1500000",
                "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":  ""
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:1",
                "capacity":  "1000000",
                "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":  ""
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:1",
                "capacity":  "100000",
                "local_balance":  "0",
                "remote_balance":  "0",
                "local_chan_reserve_sat":  "0",
                "remote_chan_reserve_sat":  "0",
                "initiator":  "INITIATOR_REMOTE",
                "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":  ""
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:0",
                "capacity":  "20000",
                "local_balance":  "0",
                "remote_balance":  "0",
                "local_chan_reserve_sat":  "0",
                "remote_chan_reserve_sat":  "0",
                "initiator":  "INITIATOR_REMOTE",
                "commitment_type":  "STATIC_REMOTE_KEY",
                "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":  ""
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:1",
                "capacity":  "1000000",
                "local_balance":  "0",
                "remote_balance":  "0",
                "local_chan_reserve_sat":  "0",
                "remote_chan_reserve_sat":  "0",
                "initiator":  "INITIATOR_REMOTE",
                "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":  ""
        },
        {
            "channel":  {
                "remote_node_pub":  "xxx",
                "channel_point":  "yyy:1",
                "capacity":  "1000000",
                "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":  "ChanStatusLocalDataLoss|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":  ""
        }
    ]
}
  • So me are pending_force_closing_channels, some are waiting_close_channels
  • Some are INITIATOR_LOCAL (I haven’t done anything), some are INITIATOR_REMOTE.
  • Some are commitment ANCHORS, some are STATIC_REMOTE_KEY.
  • Some have a closing_txid, some don’t.
  • etc…

Anyone? :disappointed_relieved:

I’ve tried several things on lnd directly.
I’ve heard about chantools but can’t figure how to use it.
Any idea? Thanks!

1 Like

I’m having exactly the same issue. When fully synced after reformatting SSD I got my on chain balance back but no lightning balance and can’t recover or see any channels as mine were opened before automated channel backups was a thing. Now my node has gone down again so am wondering whether to start again in a virtual machine in windows or on different hardware to that it’s hopefully more stable. Haven’t got as far as trying to force close channels yet or know where to start with this. Hopefully if someone replies with a solution you can post an update here??

1 Like

This post and thread may be of use, you mentioned chantools well it has some commands to try Recovering a lightning wallet without a backup file - #31 by usernameisJim

After reinstallation, BTC is 100% synct.
LND got its 24 words, but channel backup couldn’t be played back because LND says: wait for sync.
Look in the LND log file and the cause of the error is:
| LND already unlocked!
lightning_app_1 | [backup-monitor] Checking channel backup…
lightning_app_1 | [backup-monitor] Error: ENOENT: no such file or directory, open ‘/data/.lnd/data/chain/bitcoin/mainnet/channel.backup’
lightning_app_1 | [backup monitor] Sleeping…
lightning_app_1 | Checking LND status…
lightning_app_1 | LND already unlocked!

Why is there the “recover Channels” menu item in the Web UI if it cannot be reached? Or what else needs to be done beforehand?

Addendum: maybe done. He is now probably scanning through all transactions 2000 blocks at a time. There are a lot of error messages, but something else happens. It probably really takes that long.