Error: ffmpeg exited with code 234: Conversion failed! #6550

Closed
opened 2026-02-20 04:13:36 -05:00 by deekerman · 1 comment
Owner

Originally created by @ML35 on GitHub (Aug 29, 2025).

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

  • Yes

The bug

Immich failed to load full image from preview in destop browser, but load fine on mobie app, destop browser load infinetly full image.
Error in "docker logs immich_server":

[Nest] 7 - 08/26/2025, 12:00:01 AM ERROR [Microservices:MediaRepository] ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14+deb12u1)
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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
[h264 @ 0x3acaa2e0580] Reinit context to 368x656, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/usr/src/app/upload/upload/4a822f53-01fa-4388-9417-ba0d4394c154/1f/31/1f319f2f-f3ba-4cbc-9746-55f8cd7c8f3a.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
Duration: 00:02:39.36, start: 0.000000, bitrate: 1538 kb/s
Stream #0:00x1: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 368x656, 1277 kb/s, 29.98 fps, 30 tbr, 90k tbn (default)
Metadata:
vendor_id : [0][0][0][0]
Stream #0:10x2: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
Metadata:
vendor_id : [0][0][0][0]
[out#0/image2 @ 0x3acaa11e340] No explicit maps, mapping streams automatically...
[vost#0:0/mjpeg @ 0x3acaa184080] Created video stream from input stream 0:0
[Parsed_thumbnail_1 @ 0x3acaa11ed00] batch size: 12 frames
[Parsed_fps_0 @ 0x3acaa11eb80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
[vost#0:0/mjpeg @ 0x3acaa184080] Starting thread...
[vf#0:0 @ 0x3acaa170280] Starting thread...
[vist#0:0/h264 @ 0x3acaa140d80] [dec:h264 @ 0x3acaa141380] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Starting thread...
Press [q] to stop, [?] for help
[h264 @ 0x3acaa2e1980] Reinit context to 368x656, pix_fmt: yuv420p
[Parsed_thumbnail_1 @ 0x3acae050600] batch size: 12 frames
[graph -1 input from stream 0:0 @ 0x3acae050900] w:368 h:656 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:0/1 csp:reserved range:tv
[graph -1 input from stream 0:0 @ 0x3acae050900] Invalid color space
[Parsed_fps_0 @ 0x3acae050480] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vf#0:0 @ 0x3acaa170280] Error reinitializing filters!
[vf#0:0 @ 0x3acaa170280] Task finished with error code: -22 (Invalid argument)
[vf#0:0 @ 0x3acaa170280] Terminating thread with return code -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3acaa184080] Encoder thread received EOF
[vost#0:0/mjpeg @ 0x3acaa184080] Could not open encoder before EOF
[vost#0:0/mjpeg @ 0x3acaa184080] Task finished with error code: -22 (Invalid argument)
[vost#0:0/mjpeg @ 0x3acaa184080] Terminating thread with return code -22 (Invalid argument)
[vist#0:0/h264 @ 0x3acaa140d80] [dec:h264 @ 0x3acaa141380] Decoder returned EOF, finishing
[vist#0:0/h264 @ 0x3acaa140d80] [dec:h264 @ 0x3acaa141380] Terminating thread with return code 0 (success)
[vist#0:0/h264 @ 0x3acaa140d80] All consumers of this stream are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] All consumers are done
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Terminating thread with return code 0 (success)
[out#0/image2 @ 0x3acaa11e340] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Input file #0 (/usr/src/app/upload/upload/4a822f53-01fa-4388-9417-ba0d4394c154/1f/31/1f319f2f-f3ba-4cbc-9746-55f8cd7c8f3a.mp4):
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Input stream #0:0 (video): 325 packets read (1753155 bytes); 2 frames decoded; 0 decode errors;
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Total: 325 packets (1753155 bytes) demuxed
[AVIOContext @ 0x3acaa1d02c0] Statistics: 2210163 bytes read, 0 seeks
Conversion failed!

[Nest] 7 - 08/26/2025, 12:00:01 AM ERROR [Microservices:{"id":"e145d47b-5d23-4ec9-ada9-afd88b2a47f3"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 234: Conversion failed!

The OS that Immich Server is running on

ubuntu 24.04

Version of Immich Server

v1.139.4

Version of Immich Mobile App

v1.139.4

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Samsung S25, Android 15

Your docker-compose.yml content

cat docker-compose.yml
#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
      #extends:
      # file: hwaccel.transcoding.yml
      # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - redis
      - database
    restart: always

  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:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

volumes:
  model-cache:

Your .env content

cat .env
# You can find d:wq
# ocumentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=/mnt/immich/max
# The location where your database files are stored
DB_DATA_LOCATION=/mnt/immich/posgtres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC

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

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=*****

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

Reproduction steps

  1. upgrade to v1.139.4 via "docker compose pull && docker compose up -d"
  2. open main page in desktop chrome on Win 11
  3. click any photo preview, see loading cycle and crash ffmpeg in log files

Relevant log output


Additional information

No response

Originally created by @ML35 on GitHub (Aug 29, 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 failed to load full image from preview in destop browser, but load fine on mobie app, destop browser load infinetly full image. Error in "docker logs immich_server": [Nest] 7 - 08/26/2025, 12:00:01 AM ERROR [Microservices:MediaRepository] ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14+deb12u1) 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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc libavutil 59. 39.100 / 59. 39.100 libavcodec 61. 19.101 / 61. 19.101 libavformat 61. 7.100 / 61. 7.100 libavdevice 61. 3.100 / 61. 3.100 libavfilter 10. 4.100 / 10. 4.100 libswscale 8. 3.100 / 8. 3.100 libswresample 5. 3.100 / 5. 3.100 libpostproc 58. 3.100 / 58. 3.100 [h264 @ 0x3acaa2e0580] Reinit context to 368x656, pix_fmt: yuv420p Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/usr/src/app/upload/upload/4a822f53-01fa-4388-9417-ba0d4394c154/1f/31/1f319f2f-f3ba-4cbc-9746-55f8cd7c8f3a.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42isom Duration: 00:02:39.36, start: 0.000000, bitrate: 1538 kb/s Stream #0:0[0x1](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, reserved, progressive, left), 368x656, 1277 kb/s, 29.98 fps, 30 tbr, 90k tbn (default) Metadata: vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: vendor_id : [0][0][0][0] [out#0/image2 @ 0x3acaa11e340] No explicit maps, mapping streams automatically... [vost#0:0/mjpeg @ 0x3acaa184080] Created video stream from input stream 0:0 [Parsed_thumbnail_1 @ 0x3acaa11ed00] batch size: 12 frames [Parsed_fps_0 @ 0x3acaa11eb80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) [vost#0:0/mjpeg @ 0x3acaa184080] Starting thread... [vf#0:0 @ 0x3acaa170280] Starting thread... [vist#0:0/h264 @ 0x3acaa140d80] [dec:h264 @ 0x3acaa141380] Starting thread... [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Starting thread... Press [q] to stop, [?] for help [h264 @ 0x3acaa2e1980] Reinit context to 368x656, pix_fmt: yuv420p [Parsed_thumbnail_1 @ 0x3acae050600] batch size: 12 frames [graph -1 input from stream 0:0 @ 0x3acae050900] w:368 h:656 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:0/1 csp:reserved range:tv [graph -1 input from stream 0:0 @ 0x3acae050900] Invalid color space [Parsed_fps_0 @ 0x3acae050480] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vf#0:0 @ 0x3acaa170280] Error reinitializing filters! [vf#0:0 @ 0x3acaa170280] Task finished with error code: -22 (Invalid argument) [vf#0:0 @ 0x3acaa170280] Terminating thread with return code -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3acaa184080] Encoder thread received EOF [vost#0:0/mjpeg @ 0x3acaa184080] Could not open encoder before EOF [vost#0:0/mjpeg @ 0x3acaa184080] Task finished with error code: -22 (Invalid argument) [vost#0:0/mjpeg @ 0x3acaa184080] Terminating thread with return code -22 (Invalid argument) [vist#0:0/h264 @ 0x3acaa140d80] [dec:h264 @ 0x3acaa141380] Decoder returned EOF, finishing [vist#0:0/h264 @ 0x3acaa140d80] [dec:h264 @ 0x3acaa141380] Terminating thread with return code 0 (success) [vist#0:0/h264 @ 0x3acaa140d80] All consumers of this stream are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] All consumers are done [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Terminating thread with return code 0 (success) [out#0/image2 @ 0x3acaa11e340] Nothing was written into output file, because at least one of its streams received no packets. frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Input file #0 (/usr/src/app/upload/upload/4a822f53-01fa-4388-9417-ba0d4394c154/1f/31/1f319f2f-f3ba-4cbc-9746-55f8cd7c8f3a.mp4): [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Input stream #0:0 (video): 325 packets read (1753155 bytes); 2 frames decoded; 0 decode errors; [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x3acaa1a0780] Total: 325 packets (1753155 bytes) demuxed [AVIOContext @ 0x3acaa1d02c0] Statistics: 2210163 bytes read, 0 seeks Conversion failed! [Nest] 7 - 08/26/2025, 12:00:01 AM ERROR [Microservices:{"id":"e145d47b-5d23-4ec9-ada9-afd88b2a47f3"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 234: Conversion failed! ### The OS that Immich Server is running on ubuntu 24.04 ### Version of Immich Server v1.139.4 ### Version of Immich Mobile App v1.139.4 ### Platform with the issue - [x] Server - [x] Web - [ ] Mobile ### Device make and model Samsung S25, Android 15 ### Your docker-compose.yml content ```YAML cat docker-compose.yml # # WARNING: Make sure to use the docker-compose.yml of the current release: # # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml # # The compose file on main may not be compatible with the latest release. # name: immich services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} #extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - .env ports: - 2283:2283 depends_on: - redis - database restart: always 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: - model-cache:/cache env_file: - .env restart: always redis: container_name: immich_redis image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e restart: always database: container_name: immich_postgres image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data restart: always volumes: model-cache: ``` ### Your .env content ```Shell cat .env # You can find d:wq # ocumentation for all the supported env variables at https://immich.app/docs/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=/mnt/immich/max # The location where your database files are stored DB_DATA_LOCATION=/mnt/immich/posgtres # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List # TZ=Etc/UTC # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=release # Connection secret for postgres. You should change it to a random password # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=***** # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich ``` ### Reproduction steps 1. upgrade to [v1.139.4](https://github.com/immich-app/immich/releases/tag/v1.139.4) via "docker compose pull && docker compose up -d" 2. open main page in desktop chrome on Win 11 3. click any photo preview, see loading cycle and crash ffmpeg in log files ### Relevant log output ```shell ``` ### Additional information _No response_
Author
Owner

@bo0tzz commented on GitHub (Aug 29, 2025):

That's an invalid or corrupted video file. That error message comes from the background processing, it should have no relation to whether you're trying to load something in the UI.

@bo0tzz commented on GitHub (Aug 29, 2025): That's an invalid or corrupted video file. That error message comes from the background processing, it should have no relation to whether you're trying to load something in the UI.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/immich#6550
No description provided.