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:
As machine learning URL I have the default setting of
My docker compose is basically the default one and looks like this:
I don''t have a GPU so the hwaccel should not matter should it?
My
Why does it not work?
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:3003http://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: truename: 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: trueI don''t have a GPU so the hwaccel should not matter should it?
My
.env.env file just contains the default configuration filled + loglevel debug.Why does it not work?