Skip to content

Thumbnails Not Generating After Uploading HEIC/DNG Photos #14349

@ckocyigit

Description

@ckocyigit

The bug

After uploading a batch of HEIC and DNG photos to Immich, I encountered several issues:

  1. The HEIC photos are not viewable in either the thumbnails or the preview.
    
  2. Since this upload, no thumbnails are being generated for any new photos.
    
  3. The jobs responsible for generating thumbnails seem to be blocked.
    
  4. My home server is now constantly running at 25% CPU load, and this seems to be caused by Immich.
    

I suspect the HEIC/DNG files might have triggered this behavior, but I'm unsure if they are the root cause. Restarting the server and the Immich service didn't resolve the issue.

I've uploaded one of the HEIC pictures here: https://we.tl/t-Njfn9gi0Hz in the hopes it might help with reproducing the issue.
I'm not seeing any helpful logs in any of the containers.

The OS that Immich Server is running on

6.8.12-Unraid

Version of Immich Server

v1.121.0

Version of Immich Mobile App

v1.121.0 build.168

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

name: immich
services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    devices:
      - /dev/dri:/dev/dri
    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 stack.env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - stack.env
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false
    networks:
      - immich
      - dockernet
  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - stack.env
    restart: always
    labels:
      - traefik.enable=false
    healthcheck:
      disable: false
    networks:
      - immich
  redis:
    container_name: immich_redis
    image: docker.io/redis:7.4-alpine@sha256:c1e88455c85225310bbea54816e9c3f4b5295815e6dbf80c34d40afc6df28275
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
    labels:
      - traefik.enable=false
    networks:
      - immich
  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    env_file:
      - stack.env
    labels:
      - traefik.enable=false
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
    restart: always
    networks:
      - immich


volumes:
  model-cache: null
networks:
  immich: {}
  dockernet:
    external: true

Your .env content

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

# The location where your uploaded files are stored
UPLOAD_LOCATION=/mnt/user/immich

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release

# Connection secrets for postgres and typesense. You should change these to random passwords
TYPESENSE_API_KEY=X
DB_PASSWORD=X

PUBLIC_LOGIN_PAGE_MESSAGE=XImmich Server

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=/mnt/user/container/immich/database

REDIS_HOSTNAME=immich_redis

PUBLIC_IMMICH_SERVER_URL=https://X.de

Reproduction steps

  1. Upload one/several HEIC and DNG photos to Immich.
  2. Attempt to view thumbnails and previews for these photos.
  3. Observe if the thumbnail generation jobs for subsequent uploads fail.

Relevant log output

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions