Missing thumbnails and image previews #5892

Closed
opened 2026-02-05 11:50:10 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @zsolt-donca on GitHub (Apr 24, 2025).

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

  • Yes

The bug

I have been facing a very annoying issue for the past month or so: thumbnails are not being reliably generated for new images, which means that for new images the web UI will have grey "blanks", and the same thing can happen on mobile as well (I have two mobile devices using the same account, and photos uploaded by one device can show up as grey images on the other). If I run the "GENERATE THUMBNAILS" for "Missing" assets, it immediately fixes the issue for all existing photos and videos.

I suspect that some other types of jobs are not being reliably run as well, as hitting "Missing" on "SMART SEARCH" and on "FACE DETECTION" can result in some tasks getting run as well, though the issue is obviously most obvious for the thumbnails.

I have been running Immich v1.131.3, on the server and on both mobile devices (Android). Now that 1.132.1 is out, will see if the issue still persists and get back.

I am running Immich in docker-compose (see attachment) on Arch Linux.

Any idea what's causing this? I have started seeing this issue in the past month or so. I have a habit of updating to the latest version as soon as the notifications come up.

The OS that Immich Server is running on

Arch

Version of Immich Server

1.131.3

Version of Immich Mobile App

1.131.3

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

#
# WARNING: To install Immich, follow our guide: https://immich.app/docs/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: quicksync # 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
    env_file:
      - .env
    ports:
      - '2283:2283'
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
      file: hwaccel.ml.yml
      service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    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
    healthcheck:
      test: >-
        pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --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

volumes:
  model-cache:

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=/data/ext/services/immich/store
# The location where your database files are stored
DB_DATA_LOCATION=/data/ext/services/immich/pgdata


# 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=Europe/Bucharest

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

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=...redacted...

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

IMMICH_HOST=0.0.0.0

MACHINE_LEARNING_WORKER_TIMEOUT=300
MACHINE_LEARNING_MAX_BATCH_SIZE__FACIAL_RECOGNITION=1

Reproduction steps

  1. Make some images using your camera app
  2. Ensure that Immich uploaded the images
  3. Check the images on web - chances are the images won't load
  4. Run the "Generate thumbnails" for "missing" assets
  5. Check again on the web and notice that the images now load

Relevant log docker compose logs output

immich-docker-compose-logs.txt

Additional information

No response

Originally created by @zsolt-donca on GitHub (Apr 24, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug I have been facing a very annoying issue for the past month or so: thumbnails are not being reliably generated for new images, which means that for new images the web UI will have grey "blanks", and the same thing can happen on mobile as well (I have two mobile devices using the same account, and photos uploaded by one device can show up as grey images on the other). If I run the "GENERATE THUMBNAILS" for "Missing" assets, it immediately fixes the issue for all existing photos and videos. I suspect that some other types of jobs are not being reliably run as well, as hitting "Missing" on "SMART SEARCH" and on "FACE DETECTION" can result in some tasks getting run as well, though the issue is obviously most obvious for the thumbnails. I have been running Immich v1.131.3, on the server and on both mobile devices (Android). Now that 1.132.1 is out, will see if the issue still persists and get back. I am running Immich in docker-compose (see attachment) on Arch Linux. Any idea what's causing this? I have started seeing this issue in the past month or so. I have a habit of updating to the latest version as soon as the notifications come up. ### The OS that Immich Server is running on Arch ### Version of Immich Server 1.131.3 ### Version of Immich Mobile App 1.131.3 ### Platform with the issue - [x] Server - [x] Web - [x] Mobile ### Your docker-compose.yml content ```YAML # # WARNING: To install Immich, follow our guide: https://immich.app/docs/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: quicksync # 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 env_file: - .env ports: - '2283:2283' depends_on: - redis - database restart: always healthcheck: disable: false immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration file: hwaccel.ml.yml service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - model-cache:/cache env_file: - .env restart: always healthcheck: disable: false redis: container_name: immich_redis image: docker.io/redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8 healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' 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 healthcheck: test: >- pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --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 volumes: model-cache: ``` ### Your .env content ```Shell # 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=/data/ext/services/immich/store # The location where your database files are stored DB_DATA_LOCATION=/data/ext/services/immich/pgdata # 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=Europe/Bucharest # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=release # Connection secret for postgres. You should change it to a random password DB_PASSWORD=...redacted... # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich IMMICH_HOST=0.0.0.0 MACHINE_LEARNING_WORKER_TIMEOUT=300 MACHINE_LEARNING_MAX_BATCH_SIZE__FACIAL_RECOGNITION=1 ``` ### Reproduction steps 1. Make some images using your camera app 2. Ensure that Immich uploaded the images 3. Check the images on web - chances are the images won't load 4. Run the "Generate thumbnails" for "missing" assets 5. Check again on the web and notice that the images now load ### ~Relevant log~ docker compose logs output [immich-docker-compose-logs.txt](https://github.com/user-attachments/files/19889975/immich-docker-compose-logs.txt) ### Additional information _No response_
Author
Owner

@zsolt-donca commented on GitHub (Apr 24, 2025):

This is how the issue looks like on mobile. This is the screenshot of a device where some of the images made by another mobile device do not show up. The web UI does not load the same images either. Again, if I run the "generate missing thumbnails" job in the admin page, that immediately resolves the issue.

Image

@zsolt-donca commented on GitHub (Apr 24, 2025): This is how the issue looks like on mobile. This is the screenshot of a device where some of the images made by another mobile device do not show up. The web UI does not load the same images either. Again, if I run the "generate missing thumbnails" job in the admin page, that immediately resolves the issue. ![Image](https://github.com/user-attachments/assets/6f8c6e06-6793-4453-a811-4c129811ff04)
Author
Owner

@bo0tzz commented on GitHub (Apr 24, 2025):

This should be fixed on the latest release. If it's not, we can reopen the existing issue about it.

@bo0tzz commented on GitHub (Apr 24, 2025): This should be fixed on the latest release. If it's not, we can reopen the existing issue about it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#5892