Immich 1.133.0 Upgrade Issues from 1.132.0
I am running Immich and Immich ML on a docker-compose with a separate dedicated postgres instance as I have other services using that database server. When upgrading immich without upgrading the database server, it fails to start. If I attempt to upgrade postgres to the latest recommended container, it fails to start there as well. I have moved to
valkey
for cache server sometime ago even though the domain says redis
. See below for more technical information.
Configuration files:
Immich compose:
.env:
93 Replies
:wave: Hey @dasunsrule32,
Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:.
References
- Container Logs:
docker compose logs
docs
- Container Status: docker ps -a
docs
- Reverse Proxy: https://immich.app/docs/administration/reverse-proxy
- Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA
Checklist
I have...
1. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time).
2. :blue_square: read applicable release notes.
3. :blue_square: reviewed the FAQs for known issues.
4. :blue_square: reviewed Github for known issues.
5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy).
6. :blue_square: uploaded the relevant information (see below).
7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable
(an item can be marked as "complete" by reacting with the appropriate number)
Information
In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:
- Your docker-compose.yml and .env files.
- Logs from all the containers and their status (see above).
- All the troubleshooting steps you've tried so far.
- Any recent changes you've made to Immich or your system.
- Details about your system (both software/OS and hardware).
- Details about your storage (filesystems, type of disks, output of commands like fdisk -l
and df -h
).
- The version of the Immich server, mobile app, and other relevant pieces.
- Any other information that you think might be relevant.
Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)
If this ticket can be closed you can use the /close
command, and re-open it later if needed.Postgres compose:
Postgres .env:
Getting errors/warnings in the logs:
I checked the server and nothing has changed there.
Can you post all of the logs please?
Keep running into char counts limits
This is without upgrading the postgres server
Did you update your database image from 0.2.0 or something?
image: tensorchord/pgvecto-rs:pg16-v0.3.0
I've been running that one for awhileI saw that, but pgvecto.rs seems to think your indexes are from an old version
What was your reason for not wanting to switch to the new image btw?
I did nothing other than upgrade from 1.132.0 to 1.133.0
I tried, nothing logs in on the new postgres image. I can't access it when I cutover
Do you get these same errors when trying to upgrade to the new image?
My app accounts, admin accounts, etc.
I tried pulling it again and it's failing to start.
Could you send the logs for that?
To avoid char limits you can make a file with the logs, then send that here
Yeah, one sec, switching to it now
That looks like it started just fine
It's not accepting anything
Although you have some weird config issues
Hmmm
No app can connect
I drop back to the other server and everything comes back up

Here is pgadmin on the new image
Hmmm
One minute, I might know what's going on there
My authentik instance is offline as well, anything that logs in can't
Ok
How is pgadmin configured to talk to the database?
Like, the compose network setup
One sec
This is in the same compose file as the database?
Yes
config:
I added the server manually in
pgadmin
postgres | 2025-05-22 15:12:46.333 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.conf"
This is the line that confuses me
This should absolutely exist
Can you check your postgres data directory and see if it exists there
It should look similar to this

It exists 🤔
Wait, that's in /var/lib/postgresql
Is that the location on the host?
That's in the container
docker exec -it postgres /bin/bash
This should be mounted to /var/lib/postgresql/data
Is that first line truncated in your console output?
Yeah
I was just getting silly with globs
Hmmm, but that also seems wrong
It should not be in pgdata
All of those files you have there hsould be located in /var/lib/postgresql/data in the container
Oh, you've overwritten the data location 0.o
I must've done that awhile ago...
That is not something that we accounted for, hmmm
I can move it up the tree and
cp -rvp
Well, just re-mount should work actually
PGDATA=/var/lib/postgresql/data
Yea, if you do that, it'll fix your immediate problem
Let me try...
I'm trying to reproduce this locally so I can fix it
Hrm, crapping out
Adjust this?
to:
It's not liking this change:
You should leave your volume as it is
But remove the PGDATA env
And change DB_PATH to
/var/lib/postgresql/data/pgdata
I can't change DB_PATH, that is a local host mount
That is where the data is.
Right, but that's just an env, right?
Sorry, what is DB_PATH now?
The actual value
root@apps2:/mnt/db/postgres# ls -la
total 18
drwx------ 4 debian debian 4 May 22 11:36 .
drwxr-xr-x 8 apps apps 8 Jan 21 13:44 ..
drwxr-xr-x 2 root debian 2 May 22 11:36 data
drwx------ 21 debian debian 27 May 22 11:34 pgdata
it created a new data folder
so change the DB_ENV variable to /mnt/db/postgres/pgdata
And remove PG_DATA env from the container
Volumes should stay like
/mnt/db/postgres/pgdata is on the host that is running docker.
Correct
So set the docker compose .env variable DB_PATH to /mnt/db/postgres/pgdata
I have to find all the postgres vars, it's been awhile since I set this up lol
Instead of /mnt/db/postgres
I think I have a solution I am about to PR anyway
Oh, yeah, makes sense..
Now it's trying to change permissions:
Welp, my day is done...
hits head on desk
🤣
root@apps2:/mnt/db/postgres# rm -r pgdata/
This isn't my dayYou ran that? 🤔
I just got off a long flight and I'm exhausted. I'm pulling backups now. But yeah,...
Ah, not the best time to do things like this 😅
At least you have backups 😉
I'll have a fixed database image up shortly if you want to keep your PGDATA var 😛
Ok, I'm back
Rolled back my dataset...
Ugh
At least I know my backups work! lol
Thank you for your help and patience. 🙂
Have you got it working now then with those changes? 🙂
Nope, I rolling back those changes now to the new one's. Your newer image was wanting to change the permissions and was failing with permission denied.
Was that just because you had deleted the folder though?
So docker created the new folder as root, then it couldn't change perms because it runs as 1000:1000
I think now you've restored the folder it should work 😛
Let me try...
fingers crossed.
Success

Excellent news! 😛
Let me try to start immich again...
Same issues with immich now
But hey, we're on the correct db server now though
I'm not 100% sure, but I believe if you delete the pg_vectors folder it should be happy, in your pgdata folder
I think it's got confused somewhere, so deleting that will force it to reindex
Which is fine as the server is about to update to vectorchord anyway
I will cp it out of that folder. I've had enough "rolling" back today lol
Oh...
Remove the DB_VECTOR_EXTENSION=pgvecto.rs env
Try that first lol
That's forcing it to use pgvecto.rs
👍
Rather than upgrade to vectorchord
Yeah, that makes sense.
So shiny!
👀
:peepoAwesome:
It's back up 🙂
Thank you so much. That was a pain
Should I change the postgres image now to w/o pgvecto.rs?
I guess that doesn't exist, nevermind.. that will happen over time I guess?
Feel free to, we'll be suggesting people make that change in a future update
So
image: ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0
to image: ghcr.io/immich-app/postgres:16-vectorchord0.3.0
?And no worries, thanks for uncovering a bug with our new database image 😉
I guess you're welcome? lol
Yep
Ok, testing now...
You weren't the only one experiencing it, a few people had PGDATA set, but they were working around it in bad ways 😅
Success! I've migrated completely from what I can tell.
One last question, about the new
DB_STORAGE_TYPE
config
I'm running on rust, but with ZFS arc and l2arc. Should that be changed to HDD
?Depends, if your database files will live on an SSD mostly then you could leave it on SSD probably
The parameters we tune are mostly around read speed and random access speed
Files live on hdd, but once the cache is warmed, it's fast.
Right, but where's your L2ARC?
SSD
I'm not going to be able to give you a definitive answer really, it depends how often the database files are promoted to ARC/L2ARC
Personally I would always have a SSD only pool, and a HDD pool with or without L2ARC on SSD
No worries, I just wasn't sure if there was a best practive for that outside of SSD/NVME pools.
FATAL: role "root" does not exist
any ideas?
You should make a new help desk thread if you need support
Summary:
Fix was to upgrade to, obviously matching your postgres version with pgvector version:
1. ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0
2. Make sure data was mounted properly in
/var/lib/postgresql/data
.
3. Disable pgvecto.rs config: DB_VECTOR_EXTENSION=pgvecto.rs
After that, everything else came up and migrated was successful. Database server can be moved to: ghcr.io/immich-app/postgres:16-vectorchord0.3.0
once everything has successfully migrated.
Thanks @ZackAll good, have a good rest of your day! 🙂
You too
👋 post here (as i have the same pgsql database version running).
current status:
moved the database image from
tensorchord/pgvecto-rs:pg16-v0.3.0
to ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvector0.8.0
which works fine.
updated immich from ghcr.io/immich-app/immich-server:v1.132.1
to ghcr.io/immich-app/immich-server:v1.133.1
immich is failed to start all the time.
i get following error-messages in the log:
ah, i guess i've found the issue
i have to use the image-tag 16-vectorchord0.4.1-pgvector0.8.0-pgvectors0.2.1
which i not have to use as immich will then fail with microservices worker error: Error: The VectorChord extension version is 0.4.1, but Immich only supports >=0.3 <0.4.
😅
ok, using the correct container-image solve all the problems.
used 16-vectorchord0.3.0-pgvector0.8.0-pgvectors0.2.1
image tag and immich 0.133.1` is up and running👍