Migrating from Pi to NUC / Linux Laptop - New seed / mnemonic

A few of us have migrated from the Pi to a NUC / Laptop as follows

  1. You have a pi . Your node gets very big. Performance degrades. You have your original seed with the mnemonic
  2. You install umbrel on a new Linux machine
  3. You stop the old pi and copy the umbrel folder which has got your channel.db and seed.
  4. You reconfigure the new enviroment
  5. Start the new machine.
  6. You then see a different seed / mnemonic.

Migration was successful and the node works well but the old mnemonic from the pi and the mnemonic from the umbrel installed on the new ubuntu/debian (the current machine) do not match.

Any thoughts on this?. It is a cause for concern. Is the new seed safe if there is a need for disaster recovery closing all channels to recover funds on chain?. Would you suggest closing all channels and starting fresh?. This would of course be an absolute pain.

Thank you

1 Like

It could be a bug in the web middleware of Umbrel dashboard, that display the old cache words.
Maybe @mayank can confirm this aspect.

When you start a new node instance in the NUC you should select the option of “restore from seed”, not creating a new wallet/instance, then put your old seed.
Then copy the data, that already contain the wallet and channels.

The most important thing is:

  • the node ID is the same
  • the BTC addresses are the same generated
  • the channels are back online

If all these are the same as before, is nothing to worry.

From my experiences with recovering Umbrel, you may install a new Umbrel instance with same seed words, syncronize BTC 100%, shutdown, copy from the old disk machine channel.db file (write over the new machine channels.db), then restart the new install. Nothing else should be copied. All lightning channels are back.


I am planning to migrate the other direction from Ubuntu 20.04 virtual machine that I have full control over (mnemonics, channel backups) and that have both funds and channels to a Pi 4B.

The PI is setup according to instructions on “get umbrel” and it has already synced to 100% but I have not yet used the mnemonic from the old machine or changed the node id.

My question is if the any of the steps would be different?

  1. Save the channel.db from the old node
  2. Shut down the old node
  3. Re-flash the umbrel on the PI and use the mnemonics from the old node i.e. “restore from seed”
  4. Stop umbrel on the PI
  5. Change the node id of the PI to match the node id from the old node.
  6. Copy the channel.db to the PI and overwrite the existing one.
  7. Start umbrel

Did I miss anything?


Not really, only that is not only the channel.db, is also wallet.db

read the guide for restoring Umbrel point 7, only that you are doing the way around. Is the same procedure. You can copy the whole blockchain data too to save some time (if that date is not corrupted). But don’t copy the electrs data too, leave it to re-index with a clean index files.

1 Like

Thanks for the quick reply.

So basically a copy paste of the Umbrel from the old node overwriting the Umbrel files on the PI SD card with exception of electrs data.

Since the old node had the synced data on the same “drive” and the PI uses a SSD apart from the umbrel files that are located on the SD card. Would that cause any issues with finding the sync data on the PI after the copy paste?

No. UmbrelOS will find the data on the external drive
In any case, make a SCB backup of your channels.

Unfortunately no success so far. I am stuck on

…wallet locked, unlock it to enable full RPC access…

I have tried both methods described in “Umbrel Troubleshooting Guide - Wallet is locked. How to unlock it in command line” I also checked the bitcoin and tor passwords in lnd.conf against .env and they match.

Everything else seems to work like the mnemonic and 2FA from the old node.

Any ideas?

Started over and did the copy paste once again. Same issue, wallet locked, however this time I was able to unlock it.

Then a new issue was spamming the lnd logs

RPCS: [/lnrpc.Lightning/GetInfo]: verification failed: signature mismatch after caveat verification

I have had the node running for 12 hours and no change.

Any ideas what is causing this?

@mayank any idea?

I found this issue here that instructed

ssh -t umbrel@umbrel.local "cd ~/umbrel && rm lnd/data/chain/bitcoin/mainnet/*.macaroon && docker-compose restart lnd"

After that my btc balance was visible but no lnd channels. Indexing however didn’t seem to work so I checked the bitcoin log and found repeated post of

Assertion failed: pindexWalk->pprev (chain.cpp: GetAncestor: 103)

So now I have started to reindex hoping lnd will be able to show my channels.

(The reason I just didn’t start fresh was that I didn’t want to close my channels in the process)

Understandable. Anyway, something was wrong in the migration process.
I did that process and other users too and wasn’t happen that. Maybe you didn’t copied all OK and LND is trying to create a new channel.db or index or who knows…
Have some patience… waiting a bit longer always get good results without fucking everything.

How does step 5 happen? Change the node id of the PI to match the node id from the old node?