Failed update
I just updated my version of immich but the server wont restart. getting this error message
The data directory was initialized by PostgreSQL version 14, which is not compatible with this version 16.8 (Debian 16.8-1.pgdg120+1).
45 Replies
:wave: Hey @Cerberus,
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. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time).
2. :ballot_box_with_check: 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.You shouldn't just upgrade major postgres versions. Please read the release notes more carefully to follow them correctly
It was a minor update and there wasn't a breaking bug on the notes
yes I had already upgraded to 1.133.0 and it was working
I had made the changes
You're using the wrong version of the postgres image
Then you must've changed your postgres image later on
havent changed anything
It clearly says that you were using pg 14 and now you're on pg16.8
Please post the info requested by the bot
updated to 1.133.0 made changes sever worked
ran update for 1.134.0 and it stop working
The default before was pg14, in the example on the release notes it listed pg16
ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0
you should be using:
ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
Note the slight differenceI made the changes in the release notes though for the update to 1.133.0
Not in the example; in the "if you're doing non-default things" section
Also in the example until Zack changed it you mean 😛
Just show us your compose
Kind of, true
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
that's my section there
Says pg 16 right there now doesn't it
and you were using pg14 before updating
but it was saying that on when i updated to 1.133.0
that line was running on the pervious update
That is impossible
well it was working lol
that line wasnt changed now for this update
it was changed for the last one
Then you didn't
docker compose up -d
or something and it didn't applywell I did........
If this change applied 1.133.0 would not have started
Because it's not Immich that isn't starting, it's your database
Well, Immich also isn't starting, but that's a result of it
so then how do I fix it?
Change pg16 to pg14
now the server is failing to start
do i need to roll back to 1.133.0?
Nope
Logs would be helpful
[Nest] 8 - 05/31/2025, 10:14:34 PM WARN [Microservices:DatabaseService] Could not run vector reindexing checks. If the extension was updated, please restart the Postgres instance. If you are upgrading directly from a version below 1.107.2, please upgrade to 1.107.2 first.
PostgresError: could not access file "$libdir/vchord": No such file or directory
at ErrorResponse (/usr/src/app/node_modules/postgres/cjs/src/connection.js:790:26)
at handle (/usr/src/app/node_modules/postgres/cjs/src/connection.js:476:6)
at Socket.data (/usr/src/app/node_modules/postgres/cjs/src/connection.js:315:9)
at Socket.emit (node:events:518:28)
at addChunk (node:internal/streams/readable:561:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
at Readable.push (node:internal/streams/readable:392:5)
at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
severity_local: 'ERROR',
severity: 'ERROR',
code: '58P01',
file: 'dfmgr.c',
line: '208',
routine: 'internal_load_library'
}
microservices worker error: PostgresError: could not access file "$libdir/vchord": No such file or directory, stack: PostgresError: could not access file "$libdir/vchord": No such file or directory
at ErrorResponse (/usr/src/app/node_modules/postgres/cjs/src/connection.js:790:26)
at handle (/usr/src/app/node_modules/postgres/cjs/src/connection.js:476:6)
at Socket.data (/usr/src/app/node_modules/postgres/cjs/src/connection.js:315:9)
at Socket.emit (node:events:518:28)
at addChunk (node:internal/streams/readable:561:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
at Readable.push (node:internal/streams/readable:392:5)
at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
microservices worker exited with code 1
Killing api process
Which image did you use?
sorry what do you mean?
Could you share your compose file again?
2 seconds, I never shared the whole thing just that snippet
WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
Make sure to use the docker-compose.yml of the current release:
https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
The compose file on main may not be compatible with the latest release.
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
# file: hwaccel.ml.yml
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the
-wsl
version for WSL2 where applicable
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
healthcheck:
test: redis-cli ping exit 1
restart: always
database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
healthcheck:
test: >-
pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
interval: 5m
start_interval: 30s
start_period: 5m
command: >-
postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on
restart: always
volumes:
model-cache:Yeah I only care about the postgres part
There's more stuff in there the release notes told you to change in 1.133
Please read the release notes again.
use
ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
(why are you on docker.io ?)Also, why did you change the pg image back to pgvecto-rs?
be back tomorrow!
right back up and running
ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0@sha256:fa4f6e0971f454cd95fec5a9aaed2ed93d8f46725cc6bc61e0698e97dba96da1
so thats the new Database vector now right?
so what is the pg16 and pg 14 then
postgres version 14 or 16
we use a new database extension
the database remains postgres
What's the difference between 14 and 16
I think I know what happened with the update
It's like windows 7 and 11
Same thing but can't just switch them out
Is there a functional difference?
Nothing you should worry about
What happened in the update? 👀
Think some files weren't removed when I rebuilt my computer and moved things around to run immich on a different SSD
But I don't understand how that same compose file worked on the last version but failed on the update
Because Immich switched the Postgres library used