Trouble updating immich (1.123 to 1.137)

Hi there,
I am running Scale running 24.10.2.3. In December 2024 I set up Immich as an app, version 1.7.13 (app version 1.123) from the community train. Due to very limited time, I did not update all that time so there is a bigger gap now to app version 1.137. However there is one breaking change in Immich now, before updating to 1.137 you need to update to version 1.132-1.136 once. Thus, if I update to 1.137, there is an error. I have other versions to rollback to when first going to 1.137, but I rolled back to 1.123 and the others were unfortunately gone. Now I can only update to 1.137 or rollback to 1.123.
Is there any possibility to update to a version inbetween?

I tried setting up a manual docker compose instance on version 1.132.3. So I tried, coming from 1.123:

  • Update app to 1.137 but immidiately stop the app
  • Run docker compose up on manual version 1.132.3, wait for migration, then exit
  • Run app on version 1.137
    Immich then starts on the newest version but Immich does not show any images, as if they are all gone. I tried this several times with some small changes but it never worked. So now I am back at 1.123 again, hoping for a solution.

This is my docker-compose.yml for the migration:

Summary
services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:v1.132.3
    container_name: immich-migration
    restart: unless-stopped
    environment:
      DB_HOSTNAME: db
      DB_PORT: 5432
      DB_DATABASE_NAME: immich
      DB_USERNAME: immich
      DB_PASSWORD: some_safe_pw
      REDIS_HOSTNAME: redis
      NODE_ENV: production
    depends_on:
      - db
      - redis
    volumes:
      - /mnt/storage/immich/library:/usr/src/app/upload/library
      - /mnt/storage/immich/uploads:/usr/src/app/upload/upload
      - /mnt/storage/immich/video:/usr/src/app/upload/encoded-video
      - /mnt/storage/immich/profiles:/usr/src/app/upload/profile
      - /mnt/storage/immich/backup:/usr/src/app/upload/backups
      - ./thumbs:/usr/src/app/upload/thumbs
    ports:
      - "2283:3001"

  db:
    image: ghcr.io/immich-app/postgres:15-vectorchord0.4.3-pgvectors0.2.0
    container_name: immich-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: immich
      POSTGRES_USER: immich
      POSTGRES_PASSWORD: some_safe_pw
    volumes:
      - /mnt/storage/immich/database:/var/lib/postgresql/data

  redis:
    image: redis:6
    container_name: immich-redis
    restart: unless-stopped

These are my mounts:

Summary
Type Source Destination Mode
bind /mnt/storage/immich/library /usr/src/app/upload/library
bind /mnt/storage/immich/profiles /usr/src/app/upload/profile
bind /mnt/.ix-apps/app_mounts/immich/thumbs /usr/src/app/upload/thumbs
volume /mnt/.ix-apps/docker/volumes/22a9ac1571bf50ad3f31307c328b7639ebaa48ff05e2de04abfcf755a4a48482/_data /usr/src/app/upload
bind /mnt/storage/immich/uploads /usr/src/app/upload/upload
bind /mnt/storage/immich/backup /usr/src/app/upload/backups
bind /mnt/storage/immich/video /usr/src/app/upload/encoded-video

Any help is much appreciated :slight_smile:

try replacing some of the lines with the below

image: Package immich-server · GitHub
container_name: immich-server
volumes:
# /mnt/storage/immich/library:/usr/src/app/upload/library
- /mnt/storage/immich/uploads:/data
# /mnt/storage/immich/video:/usr/src/app/upload/encoded-video
# /mnt/storage/immich/profiles:/usr/src/app/upload/profile
# /mnt/storage/immich/backup:/usr/src/app/upload/backups
#./thumbs:/usr/src/app/upload/thumbs
ports:
- 30041:2283

This leads to errors such as

immich-migration  | [Nest] 17  - 08/04/2025, 4:19:19 PM   ERROR [Api:StorageService] Failed to read upload/encoded-video/.immich: Error: ENOENT: no such file or directory, open 'upload/encoded-video/.immich'

The migration however is apparently done before that so I startet 1.137 then but with the same result as before.

Have you always had immich run via docker compose, or is this a method you are trying to make work and move away from the official ix app?

I would advise you try the ix official app after you migrate the datasets to the new structure. I had posted an example of doing the migration here that you can try Immich Guide to moving Old Storage Configuration (Deprecated) datasets to new single Uploads datatset

My current installation is the ix app, immich version 1.123, app version 1.7.13. My goal is to update to immich version 1.137.3, app version 1.9.12. So still an ix app.
But I cannot simply update because 1.137 requires a database update. 1.137 cannot do the database update, it can only be done by versions 1.132 to 1.136. So I need to execute any version from 1.132 to 1.136 once to perform the update. As I cannot run the ix app in that version, I tried to do it using a custom docker compose app.
I just need to to the database update in any way, then I will use 1.137 and later perform the migration to the new folder structure (thanks for that, would have been a question later on).

1st: do you have a copy/backup of the immich folders as they currently stand? - You should create one if you are going down the path of db upgrade without the depth of knowledge in docker compose.

2nd: make sure your backup above includes a copy of your current database.

3rd: do you know what db version you had when immich was last working? -based from the Immich official site 1.33.0 is the version that includes the procedure to upgrade the db but it is a good idea to have a backup.

4th: you are welcome to try my immich compse yml and .env to see if it helps you. I have tried to add the paths to the library, uploads, etc for you but please verify first.

Read the link to v1.33 carefully for the upgrade.

I got it :slight_smile:

The problem persisted with your 1.33 version, but this time I checked the logs and it gave several thumbs errors when I tried to click on photos.
Well my ./thumbs volume folder did not actually have all the data but only an empty “.immich” file cause I assumed that the thumbs would not matter for running the version once to get the database update. well in fact they did. I changed that to the real volume /mnt/.ix-apps/app_mounts/immich/thumbs (don’t ask me why I used a ixvolume back in december…) and then it worked. So then I was able to run 1.137 as the app and everything works!

Thank you so much for your effort, much appreciated!

I ran into the same error. When trying to update the app to 1.40, I got an error:

no such file or directory, open '/usr/src/app/upload/library/.immich

checking the mounts, I see that the data dataset is mounted to /data, instead of /usr/src/app/upload, where it is expected.

My workaround was adding an additional storage mount of “data” to “/usr/src/app/upload/library”. Now its mounted in two places (probably not optimal), but this fixed it for me.

Should this be reported? Seems like an issue in the Docker app implementation.