Skip to content

BUG: Immich ML container stuck “unhealthy” after update to v2.6.1 (Unraid, Docker Compose) #27228

Description

@Vogeluff

ℹ️ small update: i thought restarting unraid completly had fixed it, but the next day the docker container showed "unhealthy" again and the search stopped working. i also installed the latest immich 2.6.2 yesterday evening, so maybe the bug reappears just after some time or after immich updates. i will update this tomorrow after it had time to settle down.


I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

After updating Immich to v2.6.1, the immich_machine_learning container is permanently unhealthy and Smart Search no longer works. The system worked fine before (including previous updates).

The container starts normally (Gunicorn runs) but never responds to requests and health checks fail.


Environment

  • Platform: Unraid
  • Install method: Docker Compose (Unraid compose manager)
  • Immich version: v2.6.1
  • Hardware: CPU-only

Configuration

.env

UPLOAD_LOCATION=/mnt/user/immich-media
THUMB_LOCATION=/mnt/cache/appdata/immich/thumbs
DB_DATA_LOCATION=/mnt/cache/appdata/immich/postgres
IMMICH_VERSION=v2
DB_PASSWORD=postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

ML volume

volumes:
  - /mnt/user/appdata/immich/ml-cache:/cache

Symptoms

  • immich_machine_learning: unhealthy
  • Smart Search: ❌ not working
  • Web UI: 500 errors

Logs

Starting gunicorn
Listening at...
Using worker...
Control socket listening...

No errors, no model loading.


Health check

curl http://immich_machine_learning:3003/health

➡️ Hangs indefinitely


Model cache

/mnt/user/appdata/immich/ml-cache
  • Empty
  • No models downloaded

What I tried

docker restart immich_machine_learning
docker compose up -d --force-recreate immich-machine-learning
rm -rf /mnt/user/appdata/immich/ml-cache/*

Waited >30 min → no change


Resources

  • RAM ~18%
  • Disk ~42%

Observations

  • Gunicorn runs, port is open
  • Requests hang (no response)
  • Models never download

Regression

  • Worked before update
  • Broke immediately after updating to v2.6.1

Expected

  • ML container becomes healthy
  • Models download
  • /health responds
  • Smart Search works

Actual

  • Container stays unhealthy
  • /health hangs
  • No models downloaded
  • Smart Search broken

The OS that Immich Server is running on

Unraid

Version of Immich Server

v2.6.1

Version of Immich Mobile App

v2.6.1

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

No response

Your docker-compose.yml content

# WARNING: To install Immich, follow our guide:
# https://docs.immich.app/install/docker-compose
#
# Make sure to use the docker-compose.yml of the current release:
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

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
    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}:/data
      - ${THUMB_LOCATION}:/data/thumbs
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - "2283:2283"
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false
    devices:
      - /dev/dri:/dev/dri

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rkhn] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.ml.yml
    #   service: cpu
    volumes:
      - /mnt/user/appdata/immich/ml-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:9@sha256:<redacted>
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:<redacted>
    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
    shm_size: 128mb
    restart: always

Your .env content

# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=/mnt/user/immich-media
THUMB_LOCATION=/mnt/cache/appdata/immich/thumbs

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=/mnt/cache/appdata/immich/postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

# The Immich version to use. You can pin this to a specific version like "v2.1.0"
IMMICH_VERSION=v2

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=<redacted>

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Reproduction steps

don't know to be honest. i guess set up an unraid immich docker compose install pre 2.6.1 update and then update it? not sure what specific thing about my setup is the culprit..

Relevant log output

## Relevant log output

### immich_machine_learning

    Starting gunicorn
    Listening at: http://0.0.0.0:3003
    Using worker: uvicorn.workers.UvicornWorker
    Booting worker with pid: <pid>
    Control socket listening at: /usr/src/app/gunicorn.ctl

(No further output — no errors, no model download logs)

---

### Health check behavior

From `immich_server` container:

    curl http://immich_machine_learning:3003/health

➡️ Request hangs indefinitely (no response)

---

### Container exec attempts

    docker exec immich_machine_learning ps aux
    docker exec immich_machine_learning wget -q --spider https://huggingface.co

➡️ Both fail with:

    OCI runtime exec failed: exec failed: unable to start container process:
    exec: "<command>": executable file not found in $PATH: unknown

---

### Model cache state

    /mnt/user/appdata/immich/ml-cache

➡️ Directory remains empty (no model files downloaded)

Additional information

No response

Metadata

Metadata

Assignees

Type

No type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions