Machine Learning doesn't work

Hey guys! I just realized why my tagging and facial recognition doesn't work: because the microservice fetches an error. Debug log as follows:
immich_server | [Nest] 17 - 07/01/2025, 2:38:31 PM DEBUG [Api:LoggingInterceptor~k99mf7nl] PUT /api/jobs/smartSearch 200 3.55ms 95.91.1.158
immich_server | [Nest] 7 - 07/01/2025, 2:38:31 PM ERROR [Microservices:{"id":"43447847-dfb6-43a1-8d68-b76be609ae73"}] Unable to run job handler (smart-search): Error: Machine learning request '{"clip":{"visual":{"modelName":"ViT-B-16-SigLIP2__webli"}}}' failed for all URLs
immich_server | Error: Machine learning request '{"clip":{"visual":{"modelName":"ViT-B-16-SigLIP2__webli"}}}' failed for all URLs
immich_server | at MachineLearningRepository.predict (/usr/src/app/dist/repositories/machine-learning.repository.js:98:15)
immich_server | at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
immich_server | at async MachineLearningRepository.encodeImage (/usr/src/app/dist/repositories/machine-learning.repository.js:116:26)
immich_server | at async SmartInfoService.handleEncodeClip (/usr/src/app/dist/services/smart-info.service.js:91:27)
immich_server | at async JobService.onJobStart (/usr/src/app/dist/services/job.service.js:166:28)
immich_server | at async EventRepository.onEvent (/usr/src/app/dist/repositories/event.repository.js:126:13)
immich_server | at async /usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:526:32
immich_server | at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:751:24)
immich_server | [Nest] 17 - 07/01/2025, 2:38:31 PM DEBUG [Api:LoggingInterceptor~k99mf7nl] PUT /api/jobs/smartSearch 200 3.55ms 95.91.1.158
immich_server | [Nest] 7 - 07/01/2025, 2:38:31 PM ERROR [Microservices:{"id":"43447847-dfb6-43a1-8d68-b76be609ae73"}] Unable to run job handler (smart-search): Error: Machine learning request '{"clip":{"visual":{"modelName":"ViT-B-16-SigLIP2__webli"}}}' failed for all URLs
immich_server | Error: Machine learning request '{"clip":{"visual":{"modelName":"ViT-B-16-SigLIP2__webli"}}}' failed for all URLs
immich_server | at MachineLearningRepository.predict (/usr/src/app/dist/repositories/machine-learning.repository.js:98:15)
immich_server | at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
immich_server | at async MachineLearningRepository.encodeImage (/usr/src/app/dist/repositories/machine-learning.repository.js:116:26)
immich_server | at async SmartInfoService.handleEncodeClip (/usr/src/app/dist/services/smart-info.service.js:91:27)
immich_server | at async JobService.onJobStart (/usr/src/app/dist/services/job.service.js:166:28)
immich_server | at async EventRepository.onEvent (/usr/src/app/dist/repositories/event.repository.js:126:13)
immich_server | at async /usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:526:32
immich_server | at async Worker.retryIfFailed (/usr/src/app/node_modules/bullmq/dist/cjs/classes/worker.js:751:24)
As machine learning URL I have the default setting of http://immich-machine-learning:3003. My docker compose is basically the default one and looks like this:
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
# Some external libraries
env_file:
- .env
#ports:
# - 2283:3001
#expose:
# - 3001
depends_on:
- redis
- database
networks:
- default
- traefik
labels:
- "traefik.enable=true"
# Labels for traefik
restart: unless-stopped
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: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
# DB_STORAGE_TYPE: 'HDD'
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
restart: unless-stopped

networks:
traefik:
external: true
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
# Some external libraries
env_file:
- .env
#ports:
# - 2283:3001
#expose:
# - 3001
depends_on:
- redis
- database
networks:
- default
- traefik
labels:
- "traefik.enable=true"
# Labels for traefik
restart: unless-stopped
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: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
# DB_STORAGE_TYPE: 'HDD'
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
restart: unless-stopped

networks:
traefik:
external: true
I don''t have a GPU so the hwaccel should not matter should it? My .env file just contains the default configuration filled + loglevel debug. Why does it not work?
4 Replies
Immich
Immich3mo ago
:wave: Hey @C0ntroller, 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. Successfully submitted, a tag has been added to inform contributors. :white_check_mark:
bo0tzz
bo0tzz3mo ago
You don't have an ML container?
C0ntroller
C0ntrollerOP3mo ago
Oh wow. I thought I used the latest version of the docker-compose. I think somewhere on the upgrade path I misstook the microservice container for the ml container. That was fast. Thank you very much. I will try and close 🤦🏻 Yes, it was this stupid. Thank you!
Immich
Immich3mo ago
This thread has been closed. To re-open, use the button below.

Did you find this page helpful?