Skip to content

Thumbnails are not generated for new assets after immich-go upload; background jobs stuck #24937

Description

@HamonTeacher

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

  • Yes

The bug

I’m experiencing an issue where thumbnails/previews are not generated for newly added assets.

What happened:

The day before the issue appeared, I uploaded ~12 GB of photos and videos using immich-go into an existing Immich account.
After that, all newly added assets no longer show thumbnails:
This affects all users/accounts, not just the one used with immich-go.
Existing assets keep their thumbnails; only new ones are affected.

Current behavior:
Thumbnails/previews are missing for new images and videos.
Background jobs (e.g. thumbnail generation) appear to be stuck:
Job counters do not decrease.
Starting/restarting jobs does not make progress.
The rest of Immich appears to work normally (UI, uploads, browsing, etc.).

Expected behavior:
Thumbnails should be generated normally for newly uploaded assets.
Background jobs should process and complete.
Additional context:
Immich instance age: ~1.5 years
This instance was stable before; no similar issues previously.

The issue started after the immich-go upload.
No intentional configuration changes were made around that time.

The OS that Immich Server is running on

Fedora 43 Workstation

Version of Immich Server

v2.4.1

Version of Immich Mobile App

v2.4.1

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Pixel 8, Pixel 5a, Galaxy A72

Your docker-compose.yml content

immich cat docker-compose.yml
name: immich
services:
  immich-server:
    container_name: immich_server
    image: 'ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}'
    volumes:
      - '${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
    image: 'ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}'
    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:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e'
    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:
      - '${DB_DATA_LOCATION}:/var/lib/postgresql/data'
    restart: always
volumes:
  model-cache: null

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=./library
#UPLOAD_LOCATION=my/path
UPLOAD_LOCATION=my/path
# The location where your database files are stored
DB_DATA_LOCATION=./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 "v1.71.0"
IMMICH_VERSION=release

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

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

Reproduction steps

  1. Upload some pictures
  2. Open Immich (Web/App)
  3. See
    ...

Relevant log output

#0      _futurize (dart:ui/painting.dart:7991)
#1      ImageDescriptor.encoded (dart:ui/painting.dart:7785)
#2      instantiateImageCodecWithSize (dart:ui/painting.dart:2558)
#3      PaintingBinding.instantiateImageCodecWithSize (package:flutter/src/painting/binding.dart:147)
#4      RemoteImageRequest._decodeBuffer (package:immich_mobile/infrastructure/loaders/remote_image_request.dart:164)
#5      RemoteImageRequest.load (package:immich_mobile/infrastructure/loaders/remote_image_request.dart:32)
<asynchronous suspension>
#6      CancellableImageProviderMixin.loadRequest (package:immich_mobile/presentation/widgets/images/image_provider.dart:61)
<asynchronous suspension>
#7      ImageStreamCompleter.setImage (package:flutter/src/painting/image_stream.dart:724)
<asynchronous suspension>

Additional information

Additional observation:
Restarting Docker containers or the entire server temporarily starts background jobs.
Jobs stop shortly after starting, without completing.

Image

No progress is made; job counters remain unchanged.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions