Immich not starting

I ran the v1.11.0 update from v1.10.16 and it performed the migration, deleted* everything in /data (the /15 postgress folder looks OK), and now the server won’t start because it can’t find things.

I have a fairly recent back up. So will poke it in detail later this week. But for now, beware.

*Edit: It didn’t delete the /data/ folder, just moved it’s contents to /15/ .

1 Like

Yet another reason I recommend never using the community apps. Stuff like this happens all the time with them. Just install Dockge or Portainer and install your apps with docker-compose with those.

1 Like

I started with them because they were easier*, but I agree. Copped this and the unstable Jellyfin rewrite in quick succession. Also uncomfortable with Steam having root.

Yeah, it was the same with me when I got into this last year: I started with the community apps because it was easier, and it just seemed like the recommended way to go. But after several bad experiences myself, and reading of other people’s bad experiences, I now recommend against using the community apps any chance I get. It is a little more work to set things up with docker-compose because you need to think about where stuff will be located, but even with the community apps I was setting up custom locations too because of all the warnings about not using the .ix-apps dataset, so it’s not that much. Plus you can set up apps to use non-root users when you use docker-compose.

1 Like

e[31m[Nest] 93 - e[39m12/08/2025, 8:17:39 PM e[31m ERRORe[39m e[33m[Microservices:StorageService]e[39m e[31mFailed to read (/data/encoded-video/.immich): Error: ENOENT: no such file or directory, open '/data/encoded-video/.immich’e[39m

the /encoded-video/ folder exists under /15/docker/

I’m doing host path mounts for postgres and data, both are ‘/mnt/SSDs/immich

So it looks like there’s a bug somewhere that put the data into the postgres folder

from immich documentation System Integrity | Immich

The folders considered for these checks include: upload/, library/, thumbs/, encoded-video/, profile/, backups/

Those folders moved to /data/ . all folders contain a .immich file.

No dice, still can’t read the file.

ls -al in the data dir gives:

-rwxrwx— 1 netdata docker 13 Dec 3 21:47 .immich

Whoops, why is ‘netdata’ the owner with group ‘docker’?

Changing owner (and associated permissions) to apps, and it just started crashing (pgvecto_upgrade) and no reapplication of permissions would fix it.

So I put the old backup image back, same issue, pgvecto_upgrade crashed. But I had errors saying a chmod was failing due to permissions. Playing with them including restoring the original permissions didn’t work.

Reinstalling now :confused:

edit: The reinstalled default file structure is below. I am confused by these permissions, particularly the owner of the postgres 18 folder.

drwxrwx— 9 netdata docker 9 Dec 8 21:43 .
drwxr-xr-x 8 root root 8 Dec 8 21:34 ..
drwxrwx— 3 netdata docker 3 Dec 8 21:42 18
drwxrwx— 2 apps docker 3 Dec 8 21:43 backups
drwxrwx— 2 apps docker 3 Dec 8 21:43 encoded-video
drwxrwx— 2 apps docker 3 Dec 8 21:43 library
drwxrwx— 2 apps docker 3 Dec 8 21:43 profile
drwxrwx— 2 apps docker 3 Dec 8 21:43 thumbs
drwxrwx— 2 apps docker 3 Dec 8 21:43 upload

Edit2: I had a postgres 15 database. Reinstalling again. File structure a little different:

drwx------ 10 netdata docker 10 Dec 8 22:13 .
drwxr-xr-x 8 root root 8 Dec 8 21:34 ..
drwxrwx— 3 netdata docker 3 Dec 8 22:13 15
drwxrwx— 2 apps docker 3 Dec 8 22:13 backups
drwxrwx— 2 root docker 2 Dec 8 22:13 data
drwxrwx— 2 apps docker 3 Dec 8 22:13 encoded-video
drwxrwx— 2 apps docker 3 Dec 8 22:13 library
drwxrwx— 2 apps docker 3 Dec 8 22:13 profile
drwxrwx— 2 apps docker 3 Dec 8 22:13 thumbs
drwxrwx— 2 apps docker 3 Dec 8 22:13 upload

Postgress really really really wants to run as user 999 and fails if permissions for that uid is not set. In truenas, the uid 999 is the buildin netdata user. That’s why you see the netdata user.

2 Likes

I hate computers and everything digital can burn.

(Thank you very much! This may explain some of the crashes.)

Running App Version: v2.3.1 Version: v1.11.0 with my post-update manual backup database, pgvecto won’t start. It would start before I wiped and reinstalled.

2025-12-08 11:29:19.544090+00:00Using SSD storage

2025-12-08 11:29:19.560259+00:002025-12-08T11:29:19.560259651Z

2025-12-08 11:29:19.560279+00:00PostgreSQL Database directory appears to contain a database; Skipping initialization

2025-12-08 11:29:19.560290+00:002025-12-08T11:29:19.560290449Z

2025-12-08 11:29:19.601965+00:002025-12-08 11:29:19.601 GMT [1] LOG: skipping missing configuration file “/var/lib/postgresql/15/docker/postgresql.override.conf”

2025-12-08 11:29:19.602295+00:002025-12-08 11:29:19.602 GMT [1] LOG: skipping missing configuration file “/var/lib/postgresql/15/docker/postgresql.override.conf”

2025-12-08 11:29:19.629867+00:002025-12-08 22:29:19.629 AEDT [1] LOG: starting PostgreSQL 15.15 (Debian 15.15-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit

2025-12-08 11:29:19.630106+00:002025-12-08 22:29:19.630 AEDT [1] LOG: listening on IPv4 address “0.0.0.0”, port 5432

2025-12-08 11:29:19.630123+00:002025-12-08 22:29:19.630 AEDT [1] LOG: listening on IPv6 address “::”, port 5432

2025-12-08 11:29:19.631639+00:002025-12-08 22:29:19.631 AEDT [1] LOG: listening on Unix socket “/var/run/postgresql/.s.PGSQL.5432”

2025-12-08 11:29:19.634957+00:002025-12-08 22:29:19.634 AEDT [107] LOG: database system was shut down at 2025-12-08 20:23:51 AEDT

2025-12-08 11:29:19.636174+00:002025-12-08 22:29:19.636 AEDT [107] LOG: invalid record length at 0/9DF781D0: wanted 24, got 0

2025-12-08 11:29:19.636193+00:002025-12-08 22:29:19.636 AEDT [107] LOG: invalid primary checkpoint record

2025-12-08 11:29:19.636205+00:002025-12-08 22:29:19.636 AEDT [107] PANIC: could not locate a valid checkpoint record

2025-12-08 11:29:21.642776+00:002025-12-08 22:29:21.642 AEDT [114] FATAL: the database system is starting up

2025-12-08 11:29:23.242093+00:002025-12-08 22:29:23.242 AEDT [1] LOG: startup process (PID 107) was terminated by signal 6: Aborted

2025-12-08 11:29:23.242123+00:002025-12-08 22:29:23.242 AEDT [1] LOG: aborting startup due to startup process failure

2025-12-08 11:29:23.244351+00:002025-12-08 22:29:23.244 AEDT [1] LOG: database system is shut down

Stopping here. Will perform a manual database restore tomorrow. I hope they make restoring simpler in future versions.

Backup restore was nightmarish. I could not make it work in situ on the NAS.

I ended up installing immich on a local docker, restoring there, and then moving the database over. Of course default immich’s docker compose defaults to postgres14, and tn uses 15 or 18, so that failed with unhelpful errors.

Anyway, it worked. data in /data/ had to be moved into one folder level above. database in default immich had to be moved into /15/docker rather than /postgres/

Rather tempted to update postgres to 18…….

this help solved permission issue in my case
thanks :slight_smile:

1 Like