I updated Immich to v3 on Unraid and the web UI stopped loading entirely, no error on the page, just connection refused.

Checking the main Immich container logs showed the following:

Error: No vector extension found. Available extensions: vchord, vector

Turns out Immich 3.0 dropped support for the old pgvecto.rs database extension in favour of its replacement, VectorChord, and my Postgres container was still running the old image. If you’re deploying with the tensorchord/pgvecto-rs image you’ll hit the same thing. The full migration guide is here if you want the details, but here’s what I did on Unraid.

Step 1 – Back up the database

I’ll be honest, I skipped this bit because it wasn’t the end of the world if anything went wrong, this server and this setup are not a part of my photo backup strategy, just simply a viewer.

But, for those more sensible than me…

Before touching anything, open the immich_postgres container console in Unraid (Docker tab -> container icon -> Console) and run:

pg_dumpall -U <DB_USERNAME> > /var/lib/postgresql/data/immich-backup.sql

Use whatever DB username your setup has, usually “postgres”. This saves the dump onto your actual disk rather than just inside the container.

Step 2 – Swap the Postgres image

Go to the Immich Postgres container -> Edit and find the Repository field. Mine was:

tensorchord/pgvecto-rs:pg16-v0.3.0

Which needed changing to the matching VectorChord image:

ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0

Keep your Postgres major version number the same, just swap the image itself.

Step 3 – Clear out any old startup command

If your container has extra parameters or a custom command referencing shared_preload_libraries=vectors.so, remove it. The new image handles that internally.

Step 4 – Start it back up

Apply the changes and watch the logs for Immich Postgres, then the main Immich container. Mine took a couple of minutes to show the web UI again, but watching the main Immich container logs showed it working through what I assume was a migration process.

And then fingers crossed, the web UI should be back after that.