Phew!! Thought I was going crazy there for a second!!
So the output for the above, as I was able to ssh into it with the above credentials
sudo systemctl status umbrel-external-storage.service umbrel.service --no-pager
output:
umbrel-external-storage.service - External Storage Mounter
Loaded: loaded (/etc/systemd/system/umbrel-external-storage.service; **enabled**; preset: **enabled**)
Active: **active (exited)** since Wed 2026-08-12 22:19:30 UTC; 11h ago
Invocation: c45a1d93fe6c44bdb0a798c45db3dff8
Process: 353 ExecStart=/opt/umbrel-external-storage/umbrel-external-storage (code=exited, status=0/SUCCESS)
Main PID: 353 (code=exited, status=0/SUCCESS)
Mem peak: 271M
CPU: 17.880s
Aug 12 22:19:29 umbrel external storage mounter[353]: Bind mounting SD card root at /sd-card…
Aug 12 22:19:29 umbrel external storage mounter[353]: Checking Umbrel root is now on external storage…
Aug 12 22:19:30 umbrel external storage mounter[353]: Checking /var/lib/docker is now on external storage…
Aug 12 22:19:30 umbrel external storage mounter[353]: Checking /swap is now on external storage…
Aug 12 22:19:30 umbrel external storage mounter[353]: Setting up swapfile
Aug 12 22:19:30 umbrel external storage mounter[628]: Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
Aug 12 22:19:30 umbrel external storage mounter[628]: no label, UUID=39c235796-e38d-486e-bc0d-a457cdabadfe
Aug 12 22:19:30 umbrel external storage mounter[353]: Checking SD Card root is bind mounted at /sd-root…
Aug 12 22:19:30 umbrel external storage mounter[353]: Mount script completed successfully!
Aug 12 22:19:30 umbrel systemd[1]: Finished umbrel-external-storage.service - External Storage Mounter.
● umbrel.service - Umbrel daemon
Loaded: loaded (/etc/systemd/system/umbrel.service; **enabled**; preset: **enabled**)
Active: **active (running)** since Thu 2026-08-13 09:26:34 UTC; 3s ago
Invocation: cd4ad8ad0d2f42c6bb2435b9ab7c2aee
Main PID: 435534 (node)
Tasks: 23 (limit: 8782)
Memory: 100.4M (peak: 100.4M)
CPU: 6.617s
CGroup: /system.slice/umbrel.service
├─435534 node /opt/umbreld/node_modules/.bin/tsx /opt/umbreld/./source/cli.ts --data-directory=/home/umbrel/umbrel
└─435558 /usr/local/bin/node --require /opt/umbreld/node_modules/tsx/dist/preflight.cjs --import file:///opt/umbreld/node_modules/tsx/dist/loader.mjs /opt/umbr…
Aug 13 09:26:34 umbrel systemd[1]: umbrel.service: Scheduled restart job, restart counter is at 5934.
Aug 13 09:26:34 umbrel systemd[1]: Started umbrel.service - Umbrel daemon.
The next line of code:
sudo journalctl -b -u umbrel-external-storage.service -u umbrel.service --no-pager -n 200
This gave a massive blob of error data, but here are the highlights:
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ]
Starting Umbrel v1.7.4
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ]
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ] dataDirectory: /home/umbrel/umbrel
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ] port: 80
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ] logLevel: normal
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ]
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ] Committing OS partition…
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ] Successfully commited to new OS partition.
Aug 13 09:33:16 umbrel umbreld[439897]: [migration ] Checking if any migrations are needed…
Aug 13 09:33:16 umbrel umbreld[439897]: [umbreld ] Set ondemand cpu governor
Aug 13 09:33:16 umbrel umbreld[439897]: [migration ] [error] Failed to migrate Back That Mac Up app
Aug 13 09:33:16 umbrel umbreld[439897]: YAMLException: null byte is not allowed in input (1:94)
Aug 13 09:33:16 umbrel umbreld[439897]: [47B blob data]
Aug 13 09:33:16 umbrel umbreld[439897]: -----------------------------------------^
Aug 13 09:33:16 umbrel umbreld[439897]: 2 | …
Aug 13 09:33:16 umbrel umbreld[439897]: 3 | …
Aug 13 09:33:16 umbrel umbreld[439897]: at generateError (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:1273:10)
Aug 13 09:33:16 umbrel umbreld[439897]: at throwError (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:1277:9)
Aug 13 09:33:16 umbrel umbreld[439897]: at loadDocuments (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:2766:5)
Aug 13 09:33:16 umbrel umbreld[439897]: at Object.load$1 [as decode] (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:2804:19)
Aug 13 09:33:16 umbrel umbreld[439897]: at #read (file:///opt/umbreld/source/modules/utilities/file-store.ts:1:758)
Aug 13 09:33:16 umbrel umbreld[439897]: at async FileStore.get (file:///opt/umbreld/source/modules/utilities/file-store.ts:1:1531)
Aug 13 09:33:16 umbrel umbreld[439897]: at async Migration.migrateBackThatMacUpPort (file:///opt/umbreld/source/modules/startup-migrations/index.ts:1:4112)
Aug 13 09:33:16 umbrel umbreld[439897]: at async Migration.start (file:///opt/umbreld/source/modules/startup-migrations/index.ts:1:6063)
Aug 13 09:33:16 umbrel umbreld[439897]: at async Umbreld.start (file:///opt/umbreld/source/index.ts:1:2842)
Aug 13 09:33:16 umbrel umbreld[439897]: at async file:///opt/umbreld/source/cli.ts:15:601 {
Aug 13 09:33:16 umbrel umbreld[439897]: reason: ‘null byte is not allowed in input’,
Aug 13 09:33:16 umbrel umbreld[439897]: mark: {
Aug 13 09:33:16 umbrel umbreld[439897]: name: null,
skipping over a massive data dump section with some URL’s and stuff, and then there’s what looks like the contents of the /umbrel/umbrel.yaml file:
Then more data bump. skipping over:
position: 93,
Aug 13 09:33:16 umbrel umbreld[439897]: line: 0,
Aug 13 09:33:16 umbrel umbreld[439897]: column: 93,
Aug 13 09:33:16 umbrel umbreld[439897]: snippet: ’ 1 | … AAAA 2a01:b740:1360:1::11U=\f\n’ +
Aug 13 09:33:16 umbrel umbreld[439897]: ‘-----------------------------------------^\n’ +
Aug 13 09:33:16 umbrel umbreld[439897]: ’ 2 | … \n’ +
Aug 13 09:33:16 umbrel umbreld[439897]: ’ 3 | … ’
Aug 13 09:33:16 umbrel umbreld[439897]: }
Aug 13 09:33:16 umbrel umbreld[439897]: }
Aug 13 09:33:16 umbrel umbreld[439897]: YAMLException: null byte is not allowed in input (1:94)
Aug 13 09:33:16 umbrel umbreld[439897]: [47B blob data]
Aug 13 09:33:16 umbrel umbreld[439897]: -----------------------------------------^
2 | …
Aug 13 09:33:16 umbrel umbreld[439897]: 3 | …
Aug 13 09:33:16 umbrel umbreld[439897]: at generateError (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:1273:10)
Aug 13 09:33:16 umbrel umbreld[439897]: at throwError (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:1277:9)
Aug 13 09:33:16 umbrel umbreld[439897]: at loadDocuments (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:2766:5)
Aug 13 09:33:16 umbrel umbreld[439897]: at Object.load$1 [as decode] (file:///opt/umbreld/node_modules/js-yaml/dist/js-yaml.mjs:2804:19)
Aug 13 09:33:16 umbrel umbreld[439897]: at #read (file:///opt/umbreld/source/modules/utilities/file-store.ts:1:758)
Aug 13 09:33:16 umbrel umbreld[439897]: at async FileStore.get (file:///opt/umbreld/source/modules/utilities/file-store.ts:1:1531)
Aug 13 09:33:16 umbrel umbreld[439897]: at async Migration.start (file:///opt/umbreld/source/modules/startup-migrations/index.ts:1:6323)
Aug 13 09:33:16 umbrel umbreld[439897]: at async Umbreld.start (file:///opt/umbreld/source/index.ts:1:2842)
Aug 13 09:33:16 umbrel umbreld[439897]: at async file:///opt/umbreld/source/cli.ts:15:601 {
Aug 13 09:33:16 umbrel umbreld[439897]: reason: ‘null byte is not allowed in input’,
Aug 13 09:33:16 umbrel umbreld[439897]: mark: {
Aug 13 09:33:16 umbrel umbreld[439897]: name: null,
This continues a few more times until we get to the final bit:
Aug 13 09:33:16 umbrel umbreld[439897]: position: 93,
Aug 13 09:33:16 umbrel umbreld[439897]: line: 0,
Aug 13 09:33:16 umbrel umbreld[439897]: column: 93,
Aug 13 09:33:16 umbrel umbreld[439897]: snippet: ’ 1 | … AAAA 2b02:c310:2340:1::11U=\f\n’ +
Aug 13 09:33:16 umbrel umbreld[439897]: ‘-----------------------------------------^\n’ +
Aug 13 09:33:16 umbrel umbreld[439897]: ’ 2 | … \n’ +
Aug 13 09:33:16 umbrel umbreld[439897]: ’ 3 | … ’
Aug 13 09:33:16 umbrel umbreld[439897]: }
Aug 13 09:33:16 umbrel umbreld[439897]: }
Aug 13 09:33:16 umbrel systemd[1]: umbrel.service: Main process exited, code=exited, status=1/FAILURE
Aug 13 09:33:16 umbrel systemd[1]: umbrel.service: Failed with result ‘exit-code’.
Aug 13 09:33:16 umbrel systemd[1]: umbrel.service: Consumed 10.866s CPU time, 156.4M memory peak.
Aug 13 09:33:17 umbrel systemd[1]: umbrel.service: Scheduled restart job, restart counter is at 5994.
Aug 13 09:33:17 umbrel systemd[1]: Started umbrel.service - Umbrel daemon.
The most noteworthy thing at the top is where it says “Failed to migrate Back That Mac Up app”. I haven’t used installed that app or had it on my pi for years. It must still somehow have remnants in the system.
Next bit:
lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
`-sda1 ext4 1.0 umbrel d374d9b4-37b9-4588-9745-3f893a7928fe 80.7G 91% /mnt/root/swap
/swap
/data/umbrel-os/var/lib/docker
/mnt/root/var/lib/docker
/var/lib/docker
/data/umbrel-os/home/umbrel/umbrel
/mnt/root/home/umbrel/umbrel
/home/umbrel/umbrel
/mnt/root/mnt/data
/mnt/data
mmcblk0
|-mmcblk0p1 vfat FAT16 5669-5689 255M 0% /run/rugix/mounts/config
|-mmcblk0p2 vfat FAT16 566B-4CB9
|-mmcblk0p3
|-mmcblk0p4 ext4 1.0 12341234-a4ec-4304-a70f-c529ea829da9 398.3M 85% /run/rugix/mounts/system
|-mmcblk0p5
`-mmcblk0p6 ext4 1.0 data ca86cd41-0d4f-45c4-a92f-1d3e86f92f80 105.3G 0% /mnt/root/var/lib/systemd/timesync
/var/lib/systemd/timesync
/mnt/root/var/log
/var/log
/mnt/root/home
/home
/mnt/root/var/lib/docker
/var/lib/docker
/mnt/root/kopia
/kopia
/data
/run/rugix/state
/run/rugix/mounts/data
zram0 swap 1 zram0 53a69540-6893-448c-9735-2548e1b5c0f1 [SWAP]
Then…
findmnt /home/umbrel/umbrel
output:
TARGET SOURCE FSTYPE OPTIONS
/home/umbrel/umbrel /dev/sda1[/umbrel] ext4 rw,relatime
and finally:
sudo ss -ltnp | grep ':80 '
Gives no output,