Error: /usr/src/dist/main.js not found after updating to v.2.2.0

Got this error after updating from v.1.3.4 to v.2.2.0 Tried docker image prune -a followed by a new compose pull, that did nothing.
2025-10-30 22:49:53 Initializing Immich v2.2.0
2025-10-30 22:49:53 Detected CPU Cores: 4
2025-10-30 22:49:53 Error: /usr/src/dist/main.js not found
2025-10-30 22:49:53 Initializing Immich v2.2.0
2025-10-30 22:49:53 Detected CPU Cores: 4
2025-10-30 22:49:53 Error: /usr/src/dist/main.js not found
21 Replies
Immich
Immichβ€’3w ago
:wave: Hey @Vindicator πŸŽƒπŸ‘», 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. :ballot_box_with_check: reviewed the FAQs for known issues. 4. :ballot_box_with_check: reviewed Github for known issues. 5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy). 6. :ballot_box_with_check: uploaded the relevant information (see below). 7. :ballot_box_with_check: 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.
Vindicator πŸŽƒπŸ‘»
version: "3.9"

services:
immich:
container_name: Immich
image: ghcr.io/immich-app/immich-server:release
depends_on:
- immich-database
- immich-redis
environment:
- UPLOAD_LOCATION=/usr/src/app/upload
- TYPESENSE_API_KEY=-snip-
- DB_PASSWORD=-snip-
- DB_HOSTNAME=immich-database
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- REDIS_HOSTNAME=immich-redis
- NODE_ENV=production
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- /usr/immich-photos:/usr/src/app/upload
- /etc/localtime:/etc/localtime
- immich-data:/data
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: tini -- /bin/bash
command: start.sh
working_dir: /usr/src/app
healthcheck:
test: ["CMD-SHELL", "immich-healthcheck"]

immich-machine-learning:
container_name: immich-machine-learning
image: ghcr.io/immich-app/immich-machine-learning:release
depends_on:
- immich-database
environment:
- UPLOAD_LOCATION=/usr/src/app/upload
- TYPESENSE_API_KEY=-snip-
- DB_PASSWORD=-snip-
- DB_HOSTNAME=immich-database
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- REDIS_HOSTNAME=immich-redis
- DEVICE=cpu
- TRANSFORMERS_CACHE=/cache
- MACHINE_LEARNING_CACHE_FOLDER=/cache
volumes:
- immich-model-cache:/cache
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: tini --
command: python -m immich_ml
working_dir: /usr/src
healthcheck:
test: ["CMD-SHELL", "python3 healthcheck.py"]

immich-database:
container_name: Immich-database
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
- POSTGRES_PASSWORD=-snip-
- POSTGRES_USER=postgres
- POSTGRES_DB=immich
- PGDATA=/var/lib/postgresql/data
- POSTGRES_HOST_AUTH_METHOD=md5
volumes:
- immich-pgdata:/var/lib/postgresql/data
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: docker-entrypoint.sh
command: >
postgres -c shared_preload_libraries=vectors.so
-c listen_addresses=*
-c password_encryption=md5
user: postgres
stop_signal: SIGINT

immich-redis:
container_name: Immich-redis
image: redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5
volumes:
- immich-redis-data:/data
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: docker-entrypoint.sh
command: redis-server
working_dir: /data

volumes:
immich-data:
immich-model-cache:
immich-pgdata:
immich-redis-data:

networks:
Immich:
cosmos-Immich-default:
version: "3.9"

services:
immich:
container_name: Immich
image: ghcr.io/immich-app/immich-server:release
depends_on:
- immich-database
- immich-redis
environment:
- UPLOAD_LOCATION=/usr/src/app/upload
- TYPESENSE_API_KEY=-snip-
- DB_PASSWORD=-snip-
- DB_HOSTNAME=immich-database
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- REDIS_HOSTNAME=immich-redis
- NODE_ENV=production
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- /usr/immich-photos:/usr/src/app/upload
- /etc/localtime:/etc/localtime
- immich-data:/data
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: tini -- /bin/bash
command: start.sh
working_dir: /usr/src/app
healthcheck:
test: ["CMD-SHELL", "immich-healthcheck"]

immich-machine-learning:
container_name: immich-machine-learning
image: ghcr.io/immich-app/immich-machine-learning:release
depends_on:
- immich-database
environment:
- UPLOAD_LOCATION=/usr/src/app/upload
- TYPESENSE_API_KEY=-snip-
- DB_PASSWORD=-snip-
- DB_HOSTNAME=immich-database
- DB_USERNAME=postgres
- DB_DATABASE_NAME=immich
- REDIS_HOSTNAME=immich-redis
- DEVICE=cpu
- TRANSFORMERS_CACHE=/cache
- MACHINE_LEARNING_CACHE_FOLDER=/cache
volumes:
- immich-model-cache:/cache
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: tini --
command: python -m immich_ml
working_dir: /usr/src
healthcheck:
test: ["CMD-SHELL", "python3 healthcheck.py"]

immich-database:
container_name: Immich-database
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
- POSTGRES_PASSWORD=-snip-
- POSTGRES_USER=postgres
- POSTGRES_DB=immich
- PGDATA=/var/lib/postgresql/data
- POSTGRES_HOST_AUTH_METHOD=md5
volumes:
- immich-pgdata:/var/lib/postgresql/data
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: docker-entrypoint.sh
command: >
postgres -c shared_preload_libraries=vectors.so
-c listen_addresses=*
-c password_encryption=md5
user: postgres
stop_signal: SIGINT

immich-redis:
container_name: Immich-redis
image: redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5
volumes:
- immich-redis-data:/data
networks:
- Immich
- cosmos-Immich-default
restart: always
entrypoint: docker-entrypoint.sh
command: redis-server
working_dir: /data

volumes:
immich-data:
immich-model-cache:
immich-pgdata:
immich-redis-data:

networks:
Immich:
cosmos-Immich-default:
➜ sudo docker ps -a | grep Immich
61de43037ac3 ghcr.io/immich-app/immich-server:release "tini -- /bin/bash s…" 8 minutes ago Restarting (1) 29 seconds ago Immich
b54dae2691ae redis:6.2-alpine "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 6379/tcp Immich-redis
ac2f2a068ba0 tensorchord/pgvecto-rs:pg14-v0.2.0 "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 5432/tcp Immich-database
61de43037ac3 ghcr.io/immich-app/immich-server:release "tini -- /bin/bash s…" 8 minutes ago Restarting (1) 29 seconds ago Immich
b54dae2691ae redis:6.2-alpine "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 6379/tcp Immich-redis
ac2f2a068ba0 tensorchord/pgvecto-rs:pg14-v0.2.0 "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 5432/tcp Immich-database
Immich
Immichβ€’3w ago
Successfully submitted, a tag has been added to inform contributors. :white_check_mark:
Vindicator πŸŽƒπŸ‘»
image: tensorchord/pgvecto-rs:pg14-v0.2.0
You mean this one?
;-)
;-)β€’3w ago
yeah, look at the link I sent it is explained there, immich has moved from pgvecto to its successor vectorchord
Vindicator πŸŽƒπŸ‘»
little confused though. if this is the issue, then why did it run fine on 1.3.4 cus this db stuff is from 1.3.3
;-)
;-)β€’3w ago
they had backwarts compatability for 1.134 i guess to give people more time to upgrade
Vindicator πŸŽƒπŸ‘»
I'm still not sure on how this applies to the issue I reported. main.js has nothing to do with the database (afaik). and the database is running and healthy
bo0tzz
bo0tzzβ€’3w ago
You've got a lot of breaking changes to go through Please read the release notes
;-)
;-)β€’3w ago
Even if another thing is causing the main.js issue, the wrong database will cause you the next one if you donβ€˜t look into it (and into every other breaking change)
Vindicator πŸŽƒπŸ‘»
I don't really mind and I can tackle those individually, I don't know what to do with the main.js issue and was looking for guidance on that.
;-)
;-)β€’3w ago
Donβ€˜t try to directly upgrade to the latest release, go through every breaking changes and update to their pinned release using a pinned tag like :v1.137.0 for example and hope that is works, if it doesnβ€˜t tell us It surely is one of the breaking changes causing your issue Also consider to move to the new compose.yml in combination with the .env file. Your setup looks really old
Vindicator πŸŽƒπŸ‘»
Yeah I'm just going to cut my losses and reinstall it completely. Not like I don't have copies of the data elsewhere.
bo0tzz
bo0tzzβ€’3w ago
Why? Just stepping through breaking changes should get you where you need to be
Vindicator πŸŽƒπŸ‘»
this compose file was one converted from a different file type, it was set up through a marketplace for the app I use to manage my servers. Something of a TrueNAS alternative. I knew I was going to run into issues sooner or later but the initial choice was made to convert it to avoid losing data. I've since made backups of it so I think it's time I just re-do it from scratch and do it the recommended way this time. It's been held together by duct tape for months now.
;-)
;-)β€’3w ago
To avoid reinstalling completely download the official compose file for your current version from the release notes of it, move to it and start going through breaking changes from there
Vindicator πŸŽƒπŸ‘»
It's fine guys. Working now πŸ™‚ Thanks for all the help
;-)
;-)β€’3w ago
Glad you got it working πŸ™‚ You can close the ticket with /close
Immich
Immichβ€’3w ago
This thread has been closed. To re-open, use the button below.

Did you find this page helpful?