thumbnail no such file #4038

Closed
opened 2026-02-05 09:37:52 +03:00 by OVERLORD · 0 comments
Owner

Originally created by @amit-handa on GitHub (Aug 9, 2024).

The bug

hi, not sure whats going wrong, I am running immich on my ubuntu server (dell optiplex), latest version. on opening it on web, I see a few thumbnails (hazy), clicking on any of them shows no image. It prints an error in the server logs (details below).

I cleaned up the DB, immich-media-location -> ran library refresh job. It recreates the thumbnails but the issue persists :(
I checked the thumbnail file location, it doesnt exist.

The OS that Immich Server is running on

ubuntu 23.10

Version of Immich Server

v1.111.0

Version of Immich Mobile App

v1.111.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

name: immich-app

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: [ "start.sh", "immich" ]
    extends:
      file: hwaccel.yml
      service: hwaccel
    volumes:
      - ${IMMICH_MEDIA_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /mnt/media/pics:/mnt/media/pics:ro
      - /mnt/media/immich-albums:/mnt/media/immich-albums
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: [ "start.sh", "microservices" ]
    extends:
      file: hwaccel.yml
      service: hwaccel
    volumes:
      - ${IMMICH_MEDIA_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - /mnt/media/pics:/mnt/media/pics:ro
      - /mnt/media/immich-albums:/mnt/media/immich-albums
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # 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, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - ./volumes/immich-app_model-cache:/cache
    env_file:
      - .env
    restart: always

  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: tensorchord/pgvecto-rs:pg14-v0.2.0
    env_file:
      - .env
    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
      - /home/amit/immich-app_pgdata:/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='SELE
CT 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"]
    user: 1000:1000
    restart: always

volumes:
  pgdata:
  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
IMMICH_MEDIA_LOCATION=/mnt/0media/immich-app/immich-data
IMMICH_LOG_LEVEL=verbose

# 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=some-random-text
DB_PASSWORD=postgres

# 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=pgdata

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. run all library refresh job
2. the thumbnail shown are hazy
3. click on a thumbnail, no image is shown. The error pointed above is shown in the server logs.

Relevant log output

immich_server            | [Nest] 17  - 08/09/2024, 4:05:03 AM   ERROR [Api:LoggerRepository~c4u0n80f] Unable to send file: Error
immich_server            | Error: ENOENT: no such file or directory, access '/mnt/0media/immich-app/immich-data/thumbs/eb5ab064-fbca-4465-85ec-577b1b5a1629/c1/60/c16057e8-3839-4662-8f72-cfd65e18a864-thumbnail.webp'
immich_server            |     at async access (node:internal/fs/promises:606:10)
immich_server            |     at async sendFile (/usr/src/app/dist/utils/file.js:55:9)
immich_server            |     at async AssetMediaController.viewAsset (/usr/src/app/dist/controllers/asset-media.controller.js:57:9)
immich_server            | [Nest] 17  - 08/09/2024, 4:05:03 AM    WARN [Api:ExpressAdapter~c4u0n80f] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
immich_server            | [Nest] 17  - 08/09/2024, 4:05:03 AM   ERROR [Api:ExceptionsHandler~c4u0n80f] ENOENT: no such file or directory, access '/mnt/0media/immich-app/immich-data/thumbs/eb5ab064-fbca-4465-85ec-577b1b5a1629/c1/60/c16057e8-3839-4662-8f72-cfd65e18a864-thumbnail.webp'
immich_server            | Error: ENOENT: no such file or directory, access '/mnt/0media/immich-app/immich-data/thumbs/eb5ab064-fbca-4465-85ec-577b1b5a1629/c1/60/c16057e8-3839-4662-8f72-cfd65e18a864-thumbnail.webp'
immich_server            |     at async access (node:internal/fs/promises:606:10)
immich_server            |     at async sendFile (/usr/src/app/dist/utils/file.js:55:9)
immich_server            |     at async AssetMediaController.viewAsset (/usr/src/app/dist/controllers/asset-media.controller.js:57:9)

Additional information

none

Originally created by @amit-handa on GitHub (Aug 9, 2024). ### The bug hi, not sure whats going wrong, I am running immich on my ubuntu server (dell optiplex), latest version. on opening it on web, I see a few thumbnails (hazy), clicking on any of them shows no image. It prints an error in the server logs (details below). I cleaned up the DB, immich-media-location -> ran library refresh job. It recreates the thumbnails but the issue persists :( I checked the thumbnail file location, it doesnt exist. ### The OS that Immich Server is running on ubuntu 23.10 ### Version of Immich Server v1.111.0 ### Version of Immich Mobile App v1.111.0 ### Platform with the issue - [X] Server - [ ] Web - [ ] Mobile ### Your docker-compose.yml content ```YAML name: immich-app services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "immich" ] extends: file: hwaccel.yml service: hwaccel volumes: - ${IMMICH_MEDIA_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /mnt/media/pics:/mnt/media/pics:ro - /mnt/media/immich-albums:/mnt/media/immich-albums env_file: - .env ports: - 2283:3001 depends_on: - redis - database restart: always immich-microservices: container_name: immich_microservices image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} command: [ "start.sh", "microservices" ] extends: file: hwaccel.yml service: hwaccel volumes: - ${IMMICH_MEDIA_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro - /mnt/media/pics:/mnt/media/pics:ro - /mnt/media/immich-albums:/mnt/media/immich-albums env_file: - .env depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} # 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, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - ./volumes/immich-app_model-cache:/cache env_file: - .env restart: always 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: tensorchord/pgvecto-rs:pg14-v0.2.0 env_file: - .env 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 - /home/amit/immich-app_pgdata:/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='SELE CT 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"] user: 1000:1000 restart: always volumes: pgdata: 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 IMMICH_MEDIA_LOCATION=/mnt/0media/immich-app/immich-data IMMICH_LOG_LEVEL=verbose # 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=some-random-text DB_PASSWORD=postgres # 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=pgdata REDIS_HOSTNAME=immich_redis ``` ### Reproduction steps ```bash 1. run all library refresh job 2. the thumbnail shown are hazy 3. click on a thumbnail, no image is shown. The error pointed above is shown in the server logs. ``` ### Relevant log output ```shell immich_server | [Nest] 17 - 08/09/2024, 4:05:03 AM ERROR [Api:LoggerRepository~c4u0n80f] Unable to send file: Error immich_server | Error: ENOENT: no such file or directory, access '/mnt/0media/immich-app/immich-data/thumbs/eb5ab064-fbca-4465-85ec-577b1b5a1629/c1/60/c16057e8-3839-4662-8f72-cfd65e18a864-thumbnail.webp' immich_server | at async access (node:internal/fs/promises:606:10) immich_server | at async sendFile (/usr/src/app/dist/utils/file.js:55:9) immich_server | at async AssetMediaController.viewAsset (/usr/src/app/dist/controllers/asset-media.controller.js:57:9) immich_server | [Nest] 17 - 08/09/2024, 4:05:03 AM WARN [Api:ExpressAdapter~c4u0n80f] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses immich_server | [Nest] 17 - 08/09/2024, 4:05:03 AM ERROR [Api:ExceptionsHandler~c4u0n80f] ENOENT: no such file or directory, access '/mnt/0media/immich-app/immich-data/thumbs/eb5ab064-fbca-4465-85ec-577b1b5a1629/c1/60/c16057e8-3839-4662-8f72-cfd65e18a864-thumbnail.webp' immich_server | Error: ENOENT: no such file or directory, access '/mnt/0media/immich-app/immich-data/thumbs/eb5ab064-fbca-4465-85ec-577b1b5a1629/c1/60/c16057e8-3839-4662-8f72-cfd65e18a864-thumbnail.webp' immich_server | at async access (node:internal/fs/promises:606:10) immich_server | at async sendFile (/usr/src/app/dist/utils/file.js:55:9) immich_server | at async AssetMediaController.viewAsset (/usr/src/app/dist/controllers/asset-media.controller.js:57:9) ``` ### Additional information none
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#4038