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)


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

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?
Was this page helpful?