Error “Input file has corrupt header” on a valid JPEG during thumbnail generation #7065

Open
opened 2026-02-05 12:45:04 +03:00 by OVERLORD · 23 comments
Owner

Originally created by @NoctureSKY on GitHub (Sep 1, 2025).

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

  • Yes

The bug

Immich fails to generate thumbnails for a specific JPEG and logs an error:
2025-09-01 01:30:04.027 | [Nest] 7  - 09/01/2025, 1:30:04 AM   ERROR [Microservices:{"id":"e004eb18-61d9-4574-8afd-c083d6ebf6f2"}] Unable to run job handler (AssetGenerateThumbnails): Error: Input file has corrupt header: magickload: Magick: ImproperImageHeader /data/library/5fe8ea59-e93f-4b61-8b2f-b187b77fc41d/2025/2025-08/SKY20250809_052821574.jpg' @ error/tga.c/ReadTGAImage/221 (null)

However, when running the file command I get:

SKY20250809_052821574.jpg: JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=15, compression=JPEG (old), manufacturer=Google, height=3072, orientation=upper-left, datetime=2025:08:17 18:36:04, GPS-Data, yresolution=221, xresolution=229, model=Pixel 9 Pro, software=HDR+ 1.0.642384495zd, description=CameraID=0, resolutionunit=2, width=4080], baseline, precision 8, 4080x3072, components 3

The OS that Immich Server is running on

Windows 11

Version of Immich Server

v1.140.1

Version of Immich Mobile App

v1.140.1

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Pixel 9 Pro

Your docker-compose.yml content

#
# This docker-compose.yml is for Immich with Intel Quick Sync & OpenVINO
# Make sure you have hwaccel.transcoding.yml and hwaccel.ml.yml in the same folder.
#

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
    volumes:
      - ${UPLOAD_LOCATION}:/data
      - ${THUMB_LOCATION}:/data/thumbs
      - ${PROFILE_LOCATION}:/data/profile
      - ${ENCODED_VIDEO_LOCATION}:/data/encoded-video 
      - ${BACKUP_LOCATION}:/data/backups 
      # External Libraries
      - "/d/User1/Photos:/usr/src/app/external/User1_Photos:ro"
      - "/d/User1/Camera:/usr/src/app/external/User1_Camera:ro"
      - "/d/User2/Photos:/usr/src/app/external/User2:ro"
      - "/d/User3/Phones:/usr/src/app/external/User3:ro"
      - "/e/takeout/GooglePhotos:/usr/src/app/external/GooglePhotos:ro"
      - "/d/Misc/ExternalHDD:/usr/src/app/external/ExternalHDD:ro"
      - "/f/SharedDrive:/usr/src/app/external/SharedDrive:ro"
    env_file:
      - .env
    environment:
      - UPLOAD_LOCATION=/data
      - THUMB_LOCATION=/data/thumbs
      - PROFILE_LOCATION=/data/profile
      - ENCODED_VIDEO_LOCATION=/data/encoded-video
      - BACKUP_LOCATION=/data/backups
    ports:
      - "2283:2283"
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    extends:
      file: hwaccel.ml.yml
      service: openvino
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    environment:
      - MACHINE_LEARNING_ACCELERATION=openvino
    restart: always

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.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:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

volumes:
  model-cache:

Your .env content

# The location where your uploaded files are stored
UPLOAD_LOCATION=/e/Immich/library
BACKUP_LOCATION=/e/Immich/library/backups
ENCODED_VIDEO_LOCATION=/r/Immich/library/encoded-video # Or move to R: if you prefer

# Performance storage on the R: drive (SSD)
THUMB_LOCATION=/r/Immich/library/Thumbs
PROFILE_LOCATION=/r/Immich/library/profile

# Database on the K: drive (SSD)
DB_DATA_LOCATION=/k/Immich/postgres

# The location where your database files are stored
DB_DATA_LOCATION=/k/Immich/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=Europe/Amsterdam


# 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_PASSWORD>

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

Reproduction steps

Upload or place the SKY20250817_163604014.jpg (from Pixel 9 Pro, HDR+) into the library’s folder.

Observe Immich logs:

ImproperImageHeader error during thumbnail job.

Rum

file /data/library/.../SKY20250817_163604014.jpg

Output confirms valid JPEG with EXIF — reproduction of false-positive identification.1.

Relevant log output


Additional information

No response

Originally created by @NoctureSKY on GitHub (Sep 1, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug **Immich fails to generate thumbnails for a specific JPEG and logs an error:** `2025-09-01 01:30:04.027 | [Nest] 7  - 09/01/2025, 1:30:04 AM   ERROR [Microservices:{"id":"e004eb18-61d9-4574-8afd-c083d6ebf6f2"}] Unable to run job handler (AssetGenerateThumbnails): Error: Input file has corrupt header: magickload: Magick: ImproperImageHeader /data/library/5fe8ea59-e93f-4b61-8b2f-b187b77fc41d/2025/2025-08/SKY20250809_052821574.jpg' @ error/tga.c/ReadTGAImage/221 (null)` However, when running the file command I get: SKY20250809_052821574.jpg: JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=15, compression=JPEG (old), manufacturer=Google, height=3072, orientation=upper-left, datetime=2025:08:17 18:36:04, GPS-Data, yresolution=221, xresolution=229, model=Pixel 9 Pro, software=HDR+ 1.0.642384495zd, description=CameraID=0, resolutionunit=2, width=4080], baseline, precision 8, 4080x3072, components 3 ### The OS that Immich Server is running on Windows 11 ### Version of Immich Server v1.140.1 ### Version of Immich Mobile App v1.140.1 ### Platform with the issue - [x] Server - [ ] Web - [ ] Mobile ### Device make and model Pixel 9 Pro ### Your docker-compose.yml content ```YAML # # This docker-compose.yml is for Immich with Intel Quick Sync & OpenVINO # Make sure you have hwaccel.transcoding.yml and hwaccel.ml.yml in the same folder. # 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 volumes: - ${UPLOAD_LOCATION}:/data - ${THUMB_LOCATION}:/data/thumbs - ${PROFILE_LOCATION}:/data/profile - ${ENCODED_VIDEO_LOCATION}:/data/encoded-video - ${BACKUP_LOCATION}:/data/backups # External Libraries - "/d/User1/Photos:/usr/src/app/external/User1_Photos:ro" - "/d/User1/Camera:/usr/src/app/external/User1_Camera:ro" - "/d/User2/Photos:/usr/src/app/external/User2:ro" - "/d/User3/Phones:/usr/src/app/external/User3:ro" - "/e/takeout/GooglePhotos:/usr/src/app/external/GooglePhotos:ro" - "/d/Misc/ExternalHDD:/usr/src/app/external/ExternalHDD:ro" - "/f/SharedDrive:/usr/src/app/external/SharedDrive:ro" env_file: - .env environment: - UPLOAD_LOCATION=/data - THUMB_LOCATION=/data/thumbs - PROFILE_LOCATION=/data/profile - ENCODED_VIDEO_LOCATION=/data/encoded-video - BACKUP_LOCATION=/data/backups ports: - "2283:2283" depends_on: - redis - database restart: always immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} extends: file: hwaccel.ml.yml service: openvino volumes: - model-cache:/cache env_file: - .env environment: - MACHINE_LEARNING_ACCELERATION=openvino restart: always redis: container_name: immich_redis image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177 healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.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: - ${DB_DATA_LOCATION}:/var/lib/postgresql/data restart: always volumes: model-cache: ``` ### Your .env content ```Shell # The location where your uploaded files are stored UPLOAD_LOCATION=/e/Immich/library BACKUP_LOCATION=/e/Immich/library/backups ENCODED_VIDEO_LOCATION=/r/Immich/library/encoded-video # Or move to R: if you prefer # Performance storage on the R: drive (SSD) THUMB_LOCATION=/r/Immich/library/Thumbs PROFILE_LOCATION=/r/Immich/library/profile # Database on the K: drive (SSD) DB_DATA_LOCATION=/k/Immich/postgres # The location where your database files are stored DB_DATA_LOCATION=/k/Immich/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=Europe/Amsterdam # 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_PASSWORD> # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich ``` ### Reproduction steps Upload or place the SKY20250817_163604014.jpg (from Pixel 9 Pro, HDR+) into the library’s folder. Observe Immich logs:</br> ImproperImageHeader error during thumbnail job. Rum file /data/library/.../SKY20250817_163604014.jpg Output confirms valid JPEG with EXIF — reproduction of false-positive identification.1. ### Relevant log output ```shell ``` ### Additional information _No response_
Author
Owner

@alextran1502 commented on GitHub (Sep 2, 2025):

Are you running the server on RPi? Do you mind attach a sample photo that doesn't work to the issue?

@alextran1502 commented on GitHub (Sep 2, 2025): Are you running the server on RPi? Do you mind attach a sample photo that doesn't work to the issue?
Author
Owner

@Dea1993 commented on GitHub (Sep 6, 2025):

i've the same error, and same problems (missing thumbnails with a message "Unablo to load the image", same problem if i directly open the image inside immich, if i re-generate it, immich crash), if i delete the images and i re-upload it from android 16 (google pixel 8a), i get the same problems.
i have this problem since version 139 or 140 (i don't remember), but for sure, with version 138 everything was correctly working.

immich_server | [Nest] 7 - 09/06/2025, 11:07:03 AM ERROR [Microservices:{"id":"884c2ba1-4b90-48dc-983a-ef19c8b61a7c"}] Unable to run job handler (AssetExtractMetadata): Error: ENOENT: no such file or directory, stat '/usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4' immich_server | Error: ENOENT: no such file or directory, stat '/usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4' immich_server | at async Object.stat (node:internal/fs/promises:1037:18) immich_server | at async Promise.all (index 1) immich_server | at async MetadataService.handleMetadataExtraction (/usr/src/app/server/dist/services/metadata.service.js:166:35) immich_server | at async JobService.onJobStart (/usr/src/app/server/dist/services/job.service.js:198:28) immich_server | at async EventRepository.onEvent (/usr/src/app/server/dist/repositories/event.repository.js:126:13) immich_server | at async /usr/src/app/server/node_modules/.pnpm/bullmq@5.57.0/node_modules/bullmq/dist/cjs/classes/worker.js:496:32 immich_server | at async Worker.retryIfFailed (/usr/src/app/server/node_modules/.pnpm/bullmq@5.57.0/node_modules/bullmq/dist/cjs/classes/worker.js:774:24) immich_server | [Nest] 18 - 09/06/2025, 11:07:03 AM LOG [Api:EventRepository] Websocket Connect: sUln2aQ83vKej7-pAAAB immich_server | [Nest] 7 - 09/06/2025, 11:07:04 AM WARN [Microservices:Error: File not found - /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4 immich_server | at ReadTask._ExifToolTask_parser (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@28.8.0/node_modules/exiftool-vendored/dist/ExifToolTask.js:76:71) immich_server | at ReadTask.parser (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@28.8.0/node_modules/exiftool-vendored/dist/ExifToolTask.js:47:167) immich_server | at ReadTask._Task_resolve (/usr/src/app/server/node_modules/.pnpm/batch-cluster@13.0.0/node_modules/batch-cluster/dist/Task.js:146:40)] Error reading exif data (/usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4): Error: File not found - /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4 immich_server | [Nest] 7 - 09/06/2025, 11:07:06 AM ERROR [Microservices:{"id":"163cbb4e-56b8-42de-9427-23365fb38389"}] Unable to run job handler (AssetExtractMetadata): Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/16/3c/163cbb4e-56b8-42de-9427-23365fb38389-MP.mp4: Invalid data found when processing input immich_server | immich_server | Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/16/3c/163cbb4e-56b8-42de-9427-23365fb38389-MP.mp4: Invalid data found when processing input immich_server | immich_server | at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22) immich_server | at ChildProcess.emit (node:events:518:28) immich_server | at ChildProcess._handle.onexit (node:internal/child_process:293:12) immich_server | [Nest] 7 - 09/06/2025, 11:07:06 AM ERROR [Microservices:{"id":"d3b5c7c6-bda6-4840-90e5-1bd485595e79"}] Unable to run job handler (AssetExtractMetadata): Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/d3/b5/d3b5c7c6-bda6-4840-90e5-1bd485595e79-MP.mp4: Invalid data found when processing input immich_server | immich_server | Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/d3/b5/d3b5c7c6-bda6-4840-90e5-1bd485595e79-MP.mp4: Invalid data found when processing input immich_server | immich_server | at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22) immich_server | at ChildProcess.emit (node:events:518:28) immich_server | at ChildProcess._handle.onexit (node:internal/child_process:293:12) immich_server | [Nest] 7 - 09/06/2025, 11:07:06 AM ERROR [Microservices:{"id":"f4cf08c3-635d-41a6-ab84-950857bbf5e0"}] Unable to run job handler (AssetExtractMetadata): Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetoad/encoded-video/fb805cb1-fb00-ype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/f4/cf/f4cf08c3-635d-41a6-ab84-950857bbf5e0-MP.mp4: Invalid data found when processing input immich_server | immich_server | Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/f4/cf/f4cf08c3-635d-41a6-ab84-950857bbf5e0-MP.mp4: Invalid data found when processing input immich_server | immich_server | at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22) immich_server | at ChildProcess.emit (node:events:518:28) immich_server | at ChildProcess._handle.onexit (node:internal/child_process:293:12)

but if i download the image, it perfectly works, the image is not corrupted
(i attach one of the problematic images, hoping it could help, i hope this isn't compressed or edited by github)

Image

@Dea1993 commented on GitHub (Sep 6, 2025): i've the same error, and same problems (missing thumbnails with a message "Unablo to load the image", same problem if i directly open the image inside immich, if i re-generate it, immich crash), if i delete the images and i re-upload it from android 16 (google pixel 8a), i get the same problems. i have this problem since version 139 or 140 (i don't remember), but for sure, with version 138 everything was correctly working. `immich_server | [Nest] 7 - 09/06/2025, 11:07:03 AM ERROR [Microservices:{"id":"884c2ba1-4b90-48dc-983a-ef19c8b61a7c"}] Unable to run job handler (AssetExtractMetadata): Error: ENOENT: no such file or directory, stat '/usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4' immich_server | Error: ENOENT: no such file or directory, stat '/usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4' immich_server | at async Object.stat (node:internal/fs/promises:1037:18) immich_server | at async Promise.all (index 1) immich_server | at async MetadataService.handleMetadataExtraction (/usr/src/app/server/dist/services/metadata.service.js:166:35) immich_server | at async JobService.onJobStart (/usr/src/app/server/dist/services/job.service.js:198:28) immich_server | at async EventRepository.onEvent (/usr/src/app/server/dist/repositories/event.repository.js:126:13) immich_server | at async /usr/src/app/server/node_modules/.pnpm/bullmq@5.57.0/node_modules/bullmq/dist/cjs/classes/worker.js:496:32 immich_server | at async Worker.retryIfFailed (/usr/src/app/server/node_modules/.pnpm/bullmq@5.57.0/node_modules/bullmq/dist/cjs/classes/worker.js:774:24) immich_server | [Nest] 18 - 09/06/2025, 11:07:03 AM LOG [Api:EventRepository] Websocket Connect: sUln2aQ83vKej7-pAAAB immich_server | [Nest] 7 - 09/06/2025, 11:07:04 AM WARN [Microservices:Error: File not found - /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4 immich_server | at ReadTask._ExifToolTask_parser (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@28.8.0/node_modules/exiftool-vendored/dist/ExifToolTask.js:76:71) immich_server | at ReadTask.parser (/usr/src/app/server/node_modules/.pnpm/exiftool-vendored@28.8.0/node_modules/exiftool-vendored/dist/ExifToolTask.js:47:167) immich_server | at ReadTask._Task_resolve (/usr/src/app/server/node_modules/.pnpm/batch-cluster@13.0.0/node_modules/batch-cluster/dist/Task.js:146:40)] Error reading exif data (/usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4): Error: File not found - /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/88/4c/884c2ba1-4b90-48dc-983a-ef19c8b61a7c-MP.mp4 immich_server | [Nest] 7 - 09/06/2025, 11:07:06 AM ERROR [Microservices:{"id":"163cbb4e-56b8-42de-9427-23365fb38389"}] Unable to run job handler (AssetExtractMetadata): Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/16/3c/163cbb4e-56b8-42de-9427-23365fb38389-MP.mp4: Invalid data found when processing input immich_server | immich_server | Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb20d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/16/3c/163cbb4e-56b8-42de-9427-23365fb38389-MP.mp4: Invalid data found when processing input immich_server | immich_server | at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22) immich_server | at ChildProcess.emit (node:events:518:28) immich_server | at ChildProcess._handle.onexit (node:internal/child_process:293:12) immich_server | [Nest] 7 - 09/06/2025, 11:07:06 AM ERROR [Microservices:{"id":"d3b5c7c6-bda6-4840-90e5-1bd485595e79"}] Unable to run job handler (AssetExtractMetadata): Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/d3/b5/d3b5c7c6-bda6-4840-90e5-1bd485595e79-MP.mp4: Invalid data found when processing input immich_server | immich_server | Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa00d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/d3/b5/d3b5c7c6-bda6-4840-90e5-1bd485595e79-MP.mp4: Invalid data found when processing input immich_server | immich_server | at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22) immich_server | at ChildProcess.emit (node:events:518:28) immich_server | at ChildProcess._handle.onexit (node:internal/child_process:293:12) immich_server | [Nest] 7 - 09/06/2025, 11:07:06 AM ERROR [Microservices:{"id":"f4cf08c3-635d-41a6-ab84-950857bbf5e0"}] Unable to run job handler (AssetExtractMetadata): Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetoad/encoded-video/fb805cb1-fb00-ype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/f4/cf/f4cf08c3-635d-41a6-ab84-950857bbf5e0-MP.mp4: Invalid data found when processing input immich_server | immich_server | Error: ffprobe exited with code 1 immich_server | ffprobe version 7.1.1-Jellyfin Copyright (c) 2007-2025 the FFmpeg developers immich_server | built with gcc 12 (Debian 12.2.0-14) immich_server | configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc immich_server | libavutil 59. 39.100 / 59. 39.100 immich_server | libavcodec 61. 19.101 / 61. 19.101 immich_server | libavformat 61. 7.100 / 61. 7.100 immich_server | libavdevice 61. 3.100 / 61. 3.100 immich_server | libavfilter 10. 4.100 / 10. 4.100 immich_server | libswscale 8. 3.100 / 8. 3.100 immich_server | libswresample 5. 3.100 / 5. 3.100 immich_server | libpostproc 58. 3.100 / 58. 3.100 immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible! immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8e0d0180] moov atom not found immich_server | /usr/src/app/upload/encoded-video/fb805cb1-fb00-48d1-8b77-017ad5d8391a/f4/cf/f4cf08c3-635d-41a6-ab84-950857bbf5e0-MP.mp4: Invalid data found when processing input immich_server | immich_server | at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22) immich_server | at ChildProcess.emit (node:events:518:28) immich_server | at ChildProcess._handle.onexit (node:internal/child_process:293:12)` but if i download the image, it perfectly works, the image is not corrupted (i attach one of the problematic images, hoping it could help, i hope this isn't compressed or edited by github) ![Image](https://github.com/user-attachments/assets/df1ba99a-6b9c-40c8-b4f0-be593d824b6a)
Author
Owner

@pchampin commented on GitHub (Sep 7, 2025):

I have the same problem, I noticed it just after installing v140.1 on my RPi (it may have been there before, unnoticed, I'm not 100% sure).

I have the problem with any most new photos that I import, regardless of the camera/software producing the photo, so I doubt this is related to the content of the file...

@pchampin commented on GitHub (Sep 7, 2025): I have the same problem, I noticed it just after installing v140.1 on my RPi (it may have been there before, unnoticed, I'm not 100% sure). I have the problem with ~~any~~ most new photos that I import, regardless of the camera/software producing the photo, so I doubt this is related to the content of the file...
Author
Owner

@pchampin commented on GitHub (Sep 7, 2025):

Note that in my case, the error is "ERROR [Microservices:{"id":"fe0c75f1-b54f-4e70-bd57-e530a449e791"}] Unable to run job handler (AssetGenerateThumbnails): Error: VipsJpeg: premature end of JPEG image".
Note also that when I try to rerun the process (Administration > Jobs > Generate Thumbnails > Mission), Immich crashes without any error message in the log.

@pchampin commented on GitHub (Sep 7, 2025): Note that in my case, the error is "ERROR [Microservices:{"id":"fe0c75f1-b54f-4e70-bd57-e530a449e791"}] Unable to run job handler (AssetGenerateThumbnails): Error: VipsJpeg: premature end of JPEG image". Note also that when I try to rerun the process (Administration > Jobs > Generate Thumbnails > Mission), Immich crashes without any error message in the log.
Author
Owner

@NoctureSKY commented on GitHub (Sep 7, 2025):

@alextran1502 Yes sure! It's running on a Windows11 server.

I see that @Dea1993 donated image is also a Google Pixel photo, both are UltraHDR. I can provide another image that has the same error but the one specific to what is in the log I am afraid is a private

@NoctureSKY commented on GitHub (Sep 7, 2025): @alextran1502 Yes sure! It's running on a Windows11 server. I see that @Dea1993 donated image is also a Google Pixel photo, both are UltraHDR. I can provide another image that has the same error but the one specific to what is in the log I am afraid is a private
Author
Owner

@pchampin commented on GitHub (Sep 8, 2025):

FTR, I just installed a fresh instance of Immich, and it accepts without any problem all the files that are causing my original instance to crash (based on the same docker images, of course).

I even managed to import @Dea1993 's photo above...

So it really seems to be linked to some corruption in the instance rather than the photos themselves...

(for completeness: the fresh instance is running on my laptop (Ubuntu 25.04), while the original is running on my RPi (Ubuntu 24.04), so that may in theory also explain the difference...)

@pchampin commented on GitHub (Sep 8, 2025): FTR, I just installed a fresh instance of Immich, and it accepts without any problem all the files that are causing my original instance to crash (based on the same docker images, of course). I even managed to import @Dea1993 's photo above... So it really seems to be linked to some corruption in the instance rather than the photos themselves... (for completeness: the fresh instance is running on my laptop (Ubuntu 25.04), while the original is running on my RPi (Ubuntu 24.04), so that may in theory also explain the difference...)
Author
Owner

@pchampin commented on GitHub (Sep 8, 2025):

Following on my previous comment: I installed a fresh instance of Immich now on my RPi, the same one that hosts my original instance. And now the photos that cause my original instance to crash also cause the fresh instance to crash), so it might be related RPi afterall.

@pchampin commented on GitHub (Sep 8, 2025): Following on my previous comment: I installed a fresh instance of Immich now on my RPi, the same one that hosts my original instance. And now the photos that cause my original instance to crash **also** cause the fresh instance to crash), so it might be related RPi afterall.
Author
Owner

@pchampin commented on GitHub (Sep 8, 2025):

After more experimentation on my RPi (Ubuntu 24.04), I can confirm that the issue I'm encountering appeared with v1.139 . Here are two photos that I can import with any problem on v1.138.1, but cause v1.139.4 and v1.140.1 to crash.

Image

Image

@pchampin commented on GitHub (Sep 8, 2025): After more experimentation on my RPi (Ubuntu 24.04), I can confirm that the issue I'm encountering appeared with v1.139 . Here are two photos that I can import with any problem on v1.138.1, but cause v1.139.4 and v1.140.1 to crash. ![Image](https://github.com/user-attachments/assets/d053f07a-5ddd-42be-806d-e3891d607751) ![Image](https://github.com/user-attachments/assets/face232b-4cca-4c0d-9e55-1e7aed18829b)
Author
Owner

@A-Dosch commented on GitHub (Sep 8, 2025):

I have the same problem on my RPi. Installing a fresh instance doesn't solve it.

@A-Dosch commented on GitHub (Sep 8, 2025): I have the same problem on my RPi. Installing a fresh instance doesn't solve it.
Author
Owner

@pchampin commented on GitHub (Sep 8, 2025):

I have the same problem on my RPi. Installing a fresh instance doesn't solve it.

did you also try a fresh instance on v1.138 and v1.139?

@pchampin commented on GitHub (Sep 8, 2025): > I have the same problem on my RPi. Installing a fresh instance doesn't solve it. did you also try a fresh instance on v1.138 and v1.139?
Author
Owner

@pchampin commented on GitHub (Sep 9, 2025):

still no luck with 1.141.1 on my side :-(

@pchampin commented on GitHub (Sep 9, 2025): still no luck with 1.141.1 on my side :-(
Author
Owner

@Dea1993 commented on GitHub (Sep 9, 2025):

just updated to 1.141.1 on my raspberry pi 4 with raspberry OS with docker-compose.
i've the same problem.
furthermore, when i try to rescan the missing thumbnails, it keep crash (i've already posted logs and 1 pic) and i also notice a really high CPU usage, all the other services on raspberry are really unresponisve.

@Dea1993 commented on GitHub (Sep 9, 2025): just updated to 1.141.1 on my raspberry pi 4 with raspberry OS with docker-compose. i've the same problem. furthermore, when i try to rescan the missing thumbnails, it keep crash (i've already posted logs and 1 pic) and i also notice a really high CPU usage, all the other services on raspberry are really unresponisve.
Author
Owner

@skatsubo commented on GitHub (Sep 10, 2025):

Hey folks with Raspberry Pi @Dea1993 @pchampin @A-Dosch
Recent Immich versions crash on RPi during thumbnail generation, please have a look at https://github.com/immich-app/immich/issues/21237#issuecomment-3227214987 for a workaround: VIPS_NOVECTOR=1 env var.

It's not related to the original issue / OP: “Input file has corrupt header” on a valid JPEG during thumbnail generation.

@skatsubo commented on GitHub (Sep 10, 2025): Hey folks with Raspberry Pi @Dea1993 @pchampin @A-Dosch Recent Immich versions crash on RPi during thumbnail generation, please have a look at https://github.com/immich-app/immich/issues/21237#issuecomment-3227214987 for a workaround: `VIPS_NOVECTOR=1` env var. It's not related to the original issue / OP: “Input file has corrupt header” on a valid JPEG during thumbnail generation.
Author
Owner

@Dea1993 commented on GitHub (Sep 10, 2025):

Hey folks with Raspberry Pi @Dea1993 @pchampin @A-Dosch Recent Immich versions crash on RPi during thumbnail generation, please have a look at #21237 (comment) for a workaround: VIPS_NOVECTOR=1 env var.

It's not related to the original issue / OP: “Input file has corrupt header” on a valid JPEG during thumbnail generation.

i confirm.

adding
VIPS_NOVECTOR=1
to my .env
fixes both problems (loop restart and missing previews).
thanks

@Dea1993 commented on GitHub (Sep 10, 2025): > Hey folks with Raspberry Pi [@Dea1993](https://github.com/Dea1993) [@pchampin](https://github.com/pchampin) [@A-Dosch](https://github.com/A-Dosch) Recent Immich versions crash on RPi during thumbnail generation, please have a look at [#21237 (comment)](https://github.com/immich-app/immich/issues/21237#issuecomment-3227214987) for a workaround: `VIPS_NOVECTOR=1` env var. > > It's not related to the original issue / OP: “Input file has corrupt header” on a valid JPEG during thumbnail generation. i confirm. adding `VIPS_NOVECTOR=1` to my `.env` fixes both problems (loop restart and missing previews). thanks
Author
Owner

@A-Dosch commented on GitHub (Sep 10, 2025):

Hey folks with Raspberry Pi @Dea1993 @pchampin @A-Dosch Recent Immich versions crash on RPi during thumbnail generation, please have a look at #21237 (comment) for a workaround: VIPS_NOVECTOR=1 env var.

It's not related to the original issue / OP: “Input file has corrupt header” on a valid JPEG during thumbnail generation.

Can confirm as well.
adding VIPS_NOVECTOR=1 fixed the issue

@A-Dosch commented on GitHub (Sep 10, 2025): > Hey folks with Raspberry Pi [@Dea1993](https://github.com/Dea1993) [@pchampin](https://github.com/pchampin) [@A-Dosch](https://github.com/A-Dosch) Recent Immich versions crash on RPi during thumbnail generation, please have a look at [#21237 (comment)](https://github.com/immich-app/immich/issues/21237#issuecomment-3227214987) for a workaround: `VIPS_NOVECTOR=1` env var. > > It's not related to the original issue / OP: “Input file has corrupt header” on a valid JPEG during thumbnail generation. Can confirm as well. adding VIPS_NOVECTOR=1 fixed the issue
Author
Owner

@pchampin commented on GitHub (Sep 10, 2025):

Hey folks with Raspberry Pi @Dea1993 @pchampin @A-Dosch Recent Immich versions crash on RPi during thumbnail generation, please have a look at #21237 (comment) for a workaround: VIPS_NOVECTOR=1 env var.

yay! worked for me as well. Thanks

@pchampin commented on GitHub (Sep 10, 2025): > Hey folks with Raspberry Pi [@Dea1993](https://github.com/Dea1993) [@pchampin](https://github.com/pchampin) [@A-Dosch](https://github.com/A-Dosch) Recent Immich versions crash on RPi during thumbnail generation, please have a look at [#21237 (comment)](https://github.com/immich-app/immich/issues/21237#issuecomment-3227214987) for a workaround: `VIPS_NOVECTOR=1` env var. yay! worked for me as well. Thanks
Author
Owner

@skatsubo commented on GitHub (Oct 6, 2025):

@NoctureSKY is the issue still relevant?
If so, could you tell about your hardware + share an image sample that triggers the error.

@skatsubo commented on GitHub (Oct 6, 2025): @NoctureSKY is the issue still relevant? If so, could you tell about your hardware + share an image sample that triggers the error.
Author
Owner

@mik9 commented on GitHub (Oct 27, 2025):

Encountered this error on 2.1.0 for couple of images. VIPS_NOVECTOR=1 doesn't help. Stacktrace:

immich_server  | [Nest] 7  - 10/27/2025, 2:36:05 PM   ERROR [Microservices:{"id":"56497e61-2d4a-447a-b6c0-bf49f2b785f6"}] Unable to run job handler (AssetGenerateThumbnails): Error: Input file contains unsupported image format
immich_server  | Error: Input file contains unsupported image format
immich_server  |     at Sharp.toBuffer (/usr/src/app/server/node_modules/.pnpm/sharp@0.34.4/node_modules/sharp/lib/output.js:163:17)
immich_server  |     at MediaRepository.decodeImage (/usr/src/app/server/dist/repositories/media.repository.js:105:68)
immich_server  |     at MediaService.decodeImage (/usr/src/app/server/dist/services/media.service.js:177:59)
immich_server  |     at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
immich_server  |     at async MediaService.generateImageThumbnails (/usr/src/app/server/dist/services/media.service.js:190:44)
immich_server  |     at async MediaService.handleGenerateThumbnails (/usr/src/app/server/dist/services/media.service.js:116:25)
immich_server  |     at async JobService.onJobStart (/usr/src/app/server/dist/services/job.service.js:198:28)
immich_server  |     at async EventRepository.onEvent (/usr/src/app/server/dist/repositories/event.repository.js:126:13)
immich_server  |     at async /usr/src/app/server/node_modules/.pnpm/bullmq@5.61.0/node_modules/bullmq/dist/cjs/classes/worker.js:533:32

Image example: https://www.icloud.com/iclouddrive/057lKllfHLHsyuzpeVAcofpCw#2017-05-04_21.23

@mik9 commented on GitHub (Oct 27, 2025): Encountered this error on 2.1.0 for couple of images. `VIPS_NOVECTOR=1` doesn't help. Stacktrace: ``` immich_server | [Nest] 7 - 10/27/2025, 2:36:05 PM ERROR [Microservices:{"id":"56497e61-2d4a-447a-b6c0-bf49f2b785f6"}] Unable to run job handler (AssetGenerateThumbnails): Error: Input file contains unsupported image format immich_server | Error: Input file contains unsupported image format immich_server | at Sharp.toBuffer (/usr/src/app/server/node_modules/.pnpm/sharp@0.34.4/node_modules/sharp/lib/output.js:163:17) immich_server | at MediaRepository.decodeImage (/usr/src/app/server/dist/repositories/media.repository.js:105:68) immich_server | at MediaService.decodeImage (/usr/src/app/server/dist/services/media.service.js:177:59) immich_server | at process.processTicksAndRejections (node:internal/process/task_queues:105:5) immich_server | at async MediaService.generateImageThumbnails (/usr/src/app/server/dist/services/media.service.js:190:44) immich_server | at async MediaService.handleGenerateThumbnails (/usr/src/app/server/dist/services/media.service.js:116:25) immich_server | at async JobService.onJobStart (/usr/src/app/server/dist/services/job.service.js:198:28) immich_server | at async EventRepository.onEvent (/usr/src/app/server/dist/repositories/event.repository.js:126:13) immich_server | at async /usr/src/app/server/node_modules/.pnpm/bullmq@5.61.0/node_modules/bullmq/dist/cjs/classes/worker.js:533:32 ``` Image example: https://www.icloud.com/iclouddrive/057lKllfHLHsyuzpeVAcofpCw#2017-05-04_21.23
Author
Owner

@skatsubo commented on GitHub (Oct 27, 2025):

Hey @mik9 thanks for posting
Upon uploading your file 2017-05-04 21.23.19.jpg to Immich v2.1.0 it emits different error - VipsJpeg: premature end of JPEG image.
Are you sure this is the image that triggered Input file contains unsupported image format in your case?

@skatsubo commented on GitHub (Oct 27, 2025): Hey @mik9 thanks for posting Upon uploading your file `2017-05-04 21.23.19.jpg` to Immich v2.1.0 it emits different error - `VipsJpeg: premature end of JPEG image`. Are you sure this is the image that triggered `Input file contains unsupported image format` in your case?
Author
Owner

@mik9 commented on GitHub (Oct 27, 2025):

Nope, I’m not sure :)
I had 163 failed thumbnail jobs and just downloaded one of the files without thumbnail. I assumed they all emitted same error :)

Ok, I’ll try to find exact file for the error discussed in this issue

But what about this file? It opens fine on my Mac and definitely was fine on old phone when photo was taken. Maybe you have other issue to track it?

@mik9 commented on GitHub (Oct 27, 2025): Nope, I’m not sure :) I had 163 failed thumbnail jobs and just downloaded one of the files without thumbnail. I assumed they all emitted same error :) Ok, I’ll try to find exact file for the error discussed in this issue But what about this file? It opens fine on my Mac and definitely was fine on old phone when photo was taken. Maybe you have other issue to track it?
Author
Owner

@mik9 commented on GitHub (Oct 27, 2025):

It turns out the files with the 'Input file has corrupt header' error are indeed corrupted. Sorry for the false alarm.

@mik9 commented on GitHub (Oct 27, 2025): It turns out the files with the 'Input file has corrupt header' error are indeed corrupted. Sorry for the false alarm.
Author
Owner

@skatsubo commented on GitHub (Oct 27, 2025):

@mik9 re: VipsJpeg: premature end of JPEG image

What does it mean

See

In essence:

The error means the images are truncated (i.e. part of the image is missing).

premature end of JPEG image is widespread, it appears regularly here on Github and on Immich Discord. Perhaps it makes sense to create a FAQ entry about this error.

How to fix / work around

  1. Try bypassing the check for corrupted images
IMMICH_PROCESS_INVALID_IMAGES=true

https://docs.immich.app/install/environment-variables/#general

  1. Convert/process them into well-formed images.
    "vips copy" (from the abovementioned thread) or other software.

Background/context

For image processing Immich uses sharp.js. Sharp, in turn, uses libvips.

  • libvips validates if images are well-formed. Bad images may cause libvips crash. This is important because it runs as native code, therefore crash in libvips causes whole Immich worker to crash.
  • libvips has levels for correctness checking: warning < error < truncated < none. So truncated is considered even more serious than error. Only none can override it - no checking at all.
  • By default Immich stops on error 9e3b4ef3db/server/src/repositories/media.repository.ts (L140-L141)
  • In the future, with more robust / crash-safe image handling (e.g. a separate process for libvips), it would be possible to lift this check/restriction for "premature end of JPEG image".
@skatsubo commented on GitHub (Oct 27, 2025): @mik9 re: `VipsJpeg: premature end of JPEG image` ### What does it mean See - [#23005 [Feature] Generate thumbnails for broken JPEG images by default](https://github.com/immich-app/immich/discussions/23005) - https://github.com/immich-app/immich/issues/16044#issuecomment-2660031038 and comments before and after this comment In essence: > The error means the images are truncated (i.e. part of the image is missing). `premature end of JPEG image` is widespread, it appears regularly here on Github and on Immich Discord. Perhaps it makes sense to create a FAQ entry about this error. ### How to fix / work around 1. Try bypassing the check for corrupted images ```conf IMMICH_PROCESS_INVALID_IMAGES=true ``` https://docs.immich.app/install/environment-variables/#general 2. Convert/process them into well-formed images. "vips copy" (from the abovementioned thread) or other software. ### Background/context For image processing Immich uses sharp.js. Sharp, in turn, uses libvips. - libvips validates if images are well-formed. Bad images may cause libvips crash. This is important because it runs as native code, therefore crash in libvips causes whole Immich worker to crash. - libvips has levels for correctness checking: warning < error < truncated < none. So `truncated` is considered even more serious than `error`. Only `none` can override it - no checking at all. - By default Immich stops on `error` https://github.com/immich-app/immich/blob/9e3b4ef3db2b3fc8e2ec21a1e6eccf805b219b61/server/src/repositories/media.repository.ts#L140-L141 - In the future, with more robust / crash-safe image handling (e.g. a separate process for libvips), it would be possible to lift this check/restriction for "premature end of JPEG image".
Author
Owner

@JamesFromIT commented on GitHub (Nov 20, 2025):

Hello @alextran1502 @skatsubo,

I also have a photo that caused this issue. I'm running:

  • Immich v2.3.1
  • Docker for Windows v28.5.2
  • Windows 10

The photo was taken on a Samsung A3 (2017) SM-A320FL and was uploaded using Immich v2.2.3.

I can't seem to replicate the issue when uploading it to a fresh Immich instance. So, it seems to have been corrupted during upload on v2.2.3.

I did also have some issues with the Postgres server at one point. It randomly started logging fatal errors that suggested it couldn't access the file system, which caused it to crash. A restart seemed to fix this, so I'm wondering if there's some weird, intermittent storage issue going on with Docker for Windows.

I've uploaded the problem photo from my phone to Google Drive here.

What is the best way to force a resync of these photos?

@JamesFromIT commented on GitHub (Nov 20, 2025): Hello @alextran1502 @skatsubo, I also have a photo that caused this issue. I'm running: - Immich v2.3.1 - Docker for Windows v28.5.2 - Windows 10 The photo was taken on a Samsung A3 (2017) SM-A320FL and was uploaded using Immich v2.2.3. I can't seem to replicate the issue when uploading it to a fresh Immich instance. So, it seems to have been corrupted during upload on v2.2.3. I did also have some issues with the Postgres server at one point. It randomly started logging fatal errors that suggested it couldn't access the file system, which caused it to crash. A restart seemed to fix this, so I'm wondering if there's some weird, intermittent storage issue going on with Docker for Windows. I've uploaded [the problem photo from my phone to Google Drive here](https://drive.google.com/drive/folders/1Ff95h8iOW2O_Al86TVO-cUj0W67FBH4M). What is the best way to force a resync of these photos?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#7065