[BUG] People thumbnails are missing after storage migration #1245

Closed
opened 2026-02-05 00:59:50 +03:00 by OVERLORD · 7 comments
Owner

Originally created by @auanasgheps on GitHub (Aug 17, 2023).

The bug

I have migrated thumbnails location to my SSD, then re-generated thumbnails using the appropriate job. Photo thumbnails are fine, however, People thumbnails in Explore section are missing.

2023-08-17 13_24_50-Settings

The server logs complain about it:

[Nest] 7  - 08/17/2023, 11:24:47 AM   ERROR [ExceptionsHandler] ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/3eceacc5-09ed-4d45-b292-0bf9c8c4ea75.jpeg'
Error: ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/3eceacc5-09ed-4d45-b292-0bf9c8c4ea75.jpeg'
[Nest] 7  - 08/17/2023, 11:24:47 AM   ERROR [ExceptionsHandler] ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/9d999555-a4cb-41d2-b1dc-60a457dd40f2.jpeg'
Error: ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/9d999555-a4cb-41d2-b1dc-60a457dd40f2.jpeg'

If I go to the jobs section and click on the Missing button, it does nothing.

2023-08-17 13_27_20-Job Status - Immich — Mozilla Firefox

What am I supposed to do? Seems a bug to me.
All of the photos are external / read-only gallery.

The OS that Immich Server is running on

Debian 11 (OpenMediaVault 6)

Version of Immich Server

1.73

Version of Immich Mobile App

1.73

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

version: "3.8"

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: [ "start.sh", "immich" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs
      - <personal path to read only gallery>:<personal path to read only gallery>:ro
    env_file:
      - stack.env
    depends_on:
      - redis
      - database
      - typesense
    restart: unless-stopped

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    extends:
      file: hwaccel.yml
      service: hwaccel
    command: [ "start.sh", "microservices" ]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs
      - <personal path to read only gallery>:<personal path to read only gallery>:ro
    env_file:
      - stack.env
    depends_on:
      - redis
      - database
      - typesense
    restart: unless-stopped

  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: unless-stopped

  immich-web:
    container_name: immich_web
    image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
    env_file:
      - stack.env
    restart: unless-stopped

  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
    volumes:
      - tsdata:/data
    restart: unless-stopped

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
    restart: unless-stopped

  database:
    container_name: immich_postgres
    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
    env_file:
      - stack.env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}

    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: unless-stopped

  immich-proxy:
    container_name: immich_proxy
    image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
    environment:
      # Make sure these values get passed through from the env file
      - IMMICH_SERVER_URL
      - IMMICH_WEB_URL
    ports:
      - 2283:8080
    depends_on:
      - immich-server
      - immich-web
    restart: unless-stopped

volumes:
  pgdata:
  model-cache:
  tsdata:

Your .env content

DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=<redacted>
DB_DATABASE_NAME=immich
REDIS_HOSTNAME=immich_redis
UPLOAD_LOCATION=<redacted>
TYPESENSE_API_KEY=<redacted>
REVERSE_GEOCODING_PRECISION=2
PUBLIC_LOGIN_PAGE_MESSAGE=<redacted>
IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
THUMB_LOCATION=<redacted>

Reproduction steps

1. Have Immich up and running
2. Migrate thumbs storage
3. Re-generate thumbnails
4. People thumbnails are missing

Additional information

No response

Originally created by @auanasgheps on GitHub (Aug 17, 2023). ### The bug I have migrated thumbnails location to my SSD, then re-generated thumbnails using the appropriate job. Photo thumbnails are fine, however, _People_ thumbnails in _Explore_ section are missing. <img width="704" alt="2023-08-17 13_24_50-Settings" src="https://github.com/immich-app/immich/assets/20586878/9e14f480-40a8-45ad-9c6c-1367dc469ed4"> The server logs complain about it: ``` [Nest] 7 - 08/17/2023, 11:24:47 AM ERROR [ExceptionsHandler] ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/3eceacc5-09ed-4d45-b292-0bf9c8c4ea75.jpeg' Error: ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/3eceacc5-09ed-4d45-b292-0bf9c8c4ea75.jpeg' [Nest] 7 - 08/17/2023, 11:24:47 AM ERROR [ExceptionsHandler] ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/9d999555-a4cb-41d2-b1dc-60a457dd40f2.jpeg' Error: ENOENT: no such file or directory, stat 'upload/thumbs/782f1162-281b-47f0-b6c2-daaa9315b374/9d999555-a4cb-41d2-b1dc-60a457dd40f2.jpeg' ``` If I go to the jobs section and click on the _Missing_ button, it does nothing. <img width="646" alt="2023-08-17 13_27_20-Job Status - Immich — Mozilla Firefox" src="https://github.com/immich-app/immich/assets/20586878/ec5b8c29-2490-4c05-a491-9a7af68f3eb8"> What am I supposed to do? Seems a bug to me. All of the photos are external / read-only gallery. ### The OS that Immich Server is running on Debian 11 (OpenMediaVault 6) ### Version of Immich Server 1.73 ### Version of Immich Mobile App 1.73 ### Platform with the issue - [X] Server - [ ] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML version: "3.8" services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "immich" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs - <personal path to read only gallery>:<personal path to read only gallery>:ro env_file: - stack.env depends_on: - redis - database - typesense restart: unless-stopped immich-microservices: container_name: immich_microservices image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} extends: file: hwaccel.yml service: hwaccel command: [ "start.sh", "microservices" ] volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs - <personal path to read only gallery>:<personal path to read only gallery>:ro env_file: - stack.env depends_on: - redis - database - typesense restart: unless-stopped 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: unless-stopped immich-web: container_name: immich_web image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release} env_file: - stack.env restart: unless-stopped typesense: container_name: immich_typesense image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd environment: - TYPESENSE_API_KEY=${TYPESENSE_API_KEY} - TYPESENSE_DATA_DIR=/data volumes: - tsdata:/data restart: unless-stopped redis: container_name: immich_redis image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 restart: unless-stopped database: container_name: immich_postgres image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441 env_file: - stack.env environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} volumes: - pgdata:/var/lib/postgresql/data restart: unless-stopped immich-proxy: container_name: immich_proxy image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release} environment: # Make sure these values get passed through from the env file - IMMICH_SERVER_URL - IMMICH_WEB_URL ports: - 2283:8080 depends_on: - immich-server - immich-web restart: unless-stopped volumes: pgdata: model-cache: tsdata: ``` ### Your .env content ```Shell DB_HOSTNAME=immich_postgres DB_USERNAME=postgres DB_PASSWORD=<redacted> DB_DATABASE_NAME=immich REDIS_HOSTNAME=immich_redis UPLOAD_LOCATION=<redacted> TYPESENSE_API_KEY=<redacted> REVERSE_GEOCODING_PRECISION=2 PUBLIC_LOGIN_PAGE_MESSAGE=<redacted> IMMICH_WEB_URL=http://immich-web:3000 IMMICH_SERVER_URL=http://immich-server:3001 IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 THUMB_LOCATION=<redacted> ``` ### Reproduction steps ```bash 1. Have Immich up and running 2. Migrate thumbs storage 3. Re-generate thumbnails 4. People thumbnails are missing ``` ### Additional information _No response_
Author
Owner

@alextran1502 commented on GitHub (Aug 17, 2023):

Please attach to the server container's shell and check if your mount of location /usr/src/app/upload/thumbs inside container can see what is on your SSD

@alextran1502 commented on GitHub (Aug 17, 2023): Please attach to the server container's shell and check if your mount of location `/usr/src/app/upload/thumbs` inside container can see what is on your SSD
Author
Owner

@jrasm91 commented on GitHub (Aug 17, 2023):

Hmm... the regenerating thumbnails job doesn't automatically create new thumbnails for people. I don't think there is anyway to do that automatically right now. You can either find and copy over the original thumbnails or manually re-select the feature photo for each face... We should probably add something into the system that takes care of this though.

@jrasm91 commented on GitHub (Aug 17, 2023): Hmm... the regenerating thumbnails job doesn't automatically create new thumbnails for people. I don't think there is anyway to do that automatically right now. You can either find and copy over the original thumbnails or manually re-select the feature photo for each face... We should probably add something into the system that takes care of this though.
Author
Owner

@auanasgheps commented on GitHub (Aug 17, 2023):

Please attach to the server container's shell and check if your mount of location /usr/src/app/upload/thumbs inside container can see what is on your SSD

Yes it does:

image

Standard thumbnails are available and are shown when browsing the timeline.

If I change the feature photo it works, but it's not a viable workaround, because I have this problem for non tagged people as well.
I deleted the original thumbnails folder.

@auanasgheps commented on GitHub (Aug 17, 2023): > Please attach to the server container's shell and check if your mount of location `/usr/src/app/upload/thumbs` inside container can see what is on your SSD Yes it does: ![image](https://github.com/immich-app/immich/assets/20586878/5f7fa898-7fe3-47ad-afb4-9230989f0b33) Standard thumbnails are available and are shown when browsing the timeline. If I change the feature photo it works, but it's not a viable workaround, because I have this problem for non tagged people as well. I deleted the original thumbnails folder.
Author
Owner

@daniele-athome commented on GitHub (Aug 21, 2023):

This happended to me too. I don't think the generate thumbnails job regenerates the people thumbnails. To fix that I had to set the feature photo again for each person. That caused the thumbnail to be regenerated.

@daniele-athome commented on GitHub (Aug 21, 2023): This happended to me too. I don't think the generate thumbnails job regenerates the people thumbnails. To fix that I had to set the feature photo again for each person. That caused the thumbnail to be regenerated.
Author
Owner

@andreybavt commented on GitHub (Aug 22, 2023):

I'm having the same issue. I deleted the thumbs directory and then re-generated it from jobs -> generate thumbnails. Now half of the faces are missing.

@andreybavt commented on GitHub (Aug 22, 2023): I'm having the same issue. I deleted the thumbs directory and then re-generated it from jobs -> generate thumbnails. Now half of the faces are missing.
Author
Owner

@daniele-athome commented on GitHub (Sep 4, 2023):

I'm working on an PR that generates thumbnails for people in the "generate thumbnails" job. However since there is no link to the original asset used to generate the (previous, supposedly lost) person thumbnail, the server will select a random asset to extract the face from.

EDIT: the used asset will be stored in the person, falling back to a random one only if it's not available (e.g. asset was deleted or first time after upgrade).

@daniele-athome commented on GitHub (Sep 4, 2023): I'm working on an PR that generates thumbnails for people in the "generate thumbnails" job. However since there is no link to the original asset used to generate the (previous, supposedly lost) person thumbnail, the server will select a random asset to extract the face from. EDIT: the used asset will be stored in the person, falling back to a random one only if it's not available (e.g. asset was deleted or first time after upgrade).
Author
Owner

@jrasm91 commented on GitHub (Sep 4, 2023):

What do you think about storing the asset id on the person instead so it isn't random?

@jrasm91 commented on GitHub (Sep 4, 2023): What do you think about storing the asset id on the person instead so it isn't random?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#1245