Video thumnails fail to generate for videos taken on iPhone 13 mini #7051

Open
opened 2026-02-20 04:19:20 -05:00 by deekerman · 2 comments
Owner

Originally created by @grabbels on GitHub (Oct 14, 2025).

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

  • Yes

The bug

For most video's that I extracted from my iPhone 13 mini using the Apple Privacy download tool, it seems that most videos (but not all) fail to generate thumbnails. The videos that fail and those that don't are in the same format and resolution and have no obvious dissimilarities from each other. Right now my library has over 500 videos without a thumbnail, all of them being videos. I've attached examples of videos below as well as the docker log for manually running thumbnail generation.

Example of video that fails to generate a thumbnail: https://drive.google.com/file/d/1UgPY26Cuc51zdfVt7K3bIf5ETX-les9r/view?usp=sharing
Example of video that does generate a thumbnail: https://drive.google.com/file/d/1AUDFW7JIJTWGVHQDc-blYnHC5W-9TvZv/view?usp=sharing

The OS that Immich Server is running on

TrueNAS 24.10.2.4/Docker

Version of Immich Server

2.0.1

Version of Immich Mobile App

2.0.1

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Intel Xeon E3-1225v5, 32GB ECC RAM

Reproduction steps

  1. Upload both videos to Immich sever
  2. Thumbnail generation fails for one of them

Relevant log output

2025-10-14 06:54:47.768931+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:MediaRepository]  libavdevice 61. 3.100 / 61. 3.100
2025-10-14 06:54:47.769021+00:00libavfilter 10. 4.100 / 10. 4.100
2025-10-14 06:54:47.769033+00:00libswscale 8. 3.100 / 8. 3.100
2025-10-14 06:54:47.769041+00:00libswresample 5. 3.100 / 5. 3.100
2025-10-14 06:54:47.769048+00:00libpostproc 58. 3.100 / 58. 3.100
2025-10-14 06:54:47.769055+00:00[h264 @ 0x55b9596e4540] Reinit context to 640x1136, pix_fmt: yuvj420p
2025-10-14 06:54:47.769063+00:00[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1940] max_analyze_duration 5000000 reached at 5031404 microseconds st:1
2025-10-14 06:54:47.769070+00:00Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Google/years/2019/IMG_3238.TRIM.MOV':
2025-10-14 06:54:47.769077+00:00Metadata:
2025-10-14 06:54:47.769084+00:00major_brand : qt
2025-10-14 06:54:47.769092+00:00minor_version : 0
2025-10-14 06:54:47.769099+00:00compatible_brands: qt
2025-10-14 06:54:47.769106+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.769114+00:00Duration: 00:00:05.59, start: 0.000000, bitrate: 256 kb/s
2025-10-14 06:54:47.769121+00:00Stream #0:0[0x1](und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
2025-10-14 06:54:47.769128+00:00Metadata:
2025-10-14 06:54:47.769137+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.769145+00:00handler_name : Core Media Audio
2025-10-14 06:54:47.769152+00:00vendor_id : [0][0][0][0]
2025-10-14 06:54:47.769159+00:00Stream #0:1[0x2](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, smpte170m/bt709/unknown, progressive, left), 640x1136, 165 kb/s, 6.76 fps, 60 tbr, 600 tbn (default)
2025-10-14 06:54:47.769168+00:00Metadata:
2025-10-14 06:54:47.769175+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.769182+00:00handler_name : Core Media Video
2025-10-14 06:54:47.769189+00:00vendor_id : [0][0][0][0]
2025-10-14 06:54:47.769197+00:00encoder : 'avc1'
2025-10-14 06:54:47.769204+00:00[out#0/webp @ 0x55b9596e8f40] No explicit maps, mapping streams automatically...
2025-10-14 06:54:47.769211+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Created video stream from input stream 0:1
2025-10-14 06:54:47.769219+00:00[Parsed_thumbnail_1 @ 0x55b9596fc640] batch size: 12 frames
2025-10-14 06:54:47.769226+00:00[Parsed_scale_5 @ 0x55b959732440] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0
2025-10-14 06:54:47.769233+00:00[Parsed_fps_0 @ 0x55b9597590c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
2025-10-14 06:54:47.769241+00:00Stream mapping:
2025-10-14 06:54:47.769248+00:00Stream #0:1 -> #0:0 (h264 (native) -> webp (libwebp_anim))
2025-10-14 06:54:47.769255+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Starting thread...
2025-10-14 06:54:47.769263+00:00[vf#0:0 @ 0x55b959706a00] Starting thread...
2025-10-14 06:54:47.769271+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Starting thread...
2025-10-14 06:54:47.769279+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Starting thread...
2025-10-14 06:54:47.769286+00:00Press [q] to stop, [?] for help
2025-10-14 06:54:47.769293+00:00[h264 @ 0x55b959701f00] Reinit context to 640x1136, pix_fmt: yuvj420p
2025-10-14 06:54:47.769300+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] EOF while reading input
2025-10-14 06:54:47.769308+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.769316+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Decoder thread received EOF packet
2025-10-14 06:54:47.769323+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Decoder returned EOF, finishing
2025-10-14 06:54:47.769330+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.769337+00:00[Parsed_thumbnail_1 @ 0x7fed90002d40] batch size: 12 frames
2025-10-14 06:54:47.769344+00:00[Parsed_scale_5 @ 0x7fed90003880] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0
2025-10-14 06:54:47.769351+00:00[graph -1 input from stream 0:1 @ 0x7fed9001d300] w:640 h:1136 pixfmt:yuvj420p tb:1/600 fr:60/1 sar:0/1 csp:smpte170m range:pc
2025-10-14 06:54:47.769359+00:00[auto_scale_0 @ 0x7fed900209c0] w:iw h:ih flags:'' interl:0
2025-10-14 06:54:47.769366+00:00[format @ 0x7fed9001de00] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_scale_5' and the filter 'format'
2025-10-14 06:54:47.769373+00:00[Parsed_fps_0 @ 0x7fed90001840] Set first pts to (in:0 out:0) from start time 0.000000
2025-10-14 06:54:47.769380+00:00[Parsed_fps_0 @ 0x7fed90001840] fps=12/1
2025-10-14 06:54:47.769387+00:00[swscaler @ 0x7fed90032c40] deprecated pixel format used, make sure you did set range correctly
2025-10-14 06:54:47.769394+00:00[Parsed_scale_5 @ 0x7fed90003880] w:640 h:1136 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 flags:0x00042200
2025-10-14 06:54:47.769402+00:00[Parsed_scale_5 @ 0x7fed90003880] [framesync @ 0x7fed900039a8] Selected 1/12 time base
2025-10-14 06:54:47.769409+00:00[Parsed_scale_5 @ 0x7fed90003880] [framesync @ 0x7fed900039a8] Sync level 1
2025-10-14 06:54:47.769416+00:00[swscaler @ 0x7fed9013a480] deprecated pixel format used, make sure you did set range correctly
2025-10-14 06:54:47.769423+00:00[auto_scale_0 @ 0x7fed900209c0] w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuv420p csp:smpte170m range:tv sar:0/1 flags:0x00000004
2025-10-14 06:54:47.769430+00:00[auto_scale_0 @ 0x7fed900209c0] [framesync @ 0x7fed900212e8] Selected 1/12 time base
2025-10-14 06:54:47.769438+00:00[auto_scale_0 @ 0x7fed900209c0] [framesync @ 0x7fed900212e8] Sync level 1
2025-10-14 06:54:47.769445+00:00[Parsed_scale_5 @ 0x7fed90003880] [framesync @ 0x7fed900039a8] Sync level 0
2025-10-14 06:54:47.769452+00:00[auto_scale_0 @ 0x7fed900209c0] [framesync @ 0x7fed900212e8] Sync level 0
2025-10-14 06:54:47.769459+00:00[vf#0:0 @ 0x55b959706a00] Filtergraph returned EOF, finishing
2025-10-14 06:54:47.769466+00:00[vf#0:0 @ 0x55b959706a00] All consumers returned EOF
2025-10-14 06:54:47.769473+00:00[vf#0:0 @ 0x55b959732c00] No filtered frames for output stream, trying to initialize anyway.
2025-10-14 06:54:47.769481+00:00Output #0, webp, to '/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/32/c6/32c64bcf-d816-4f2d-b035-390324043fdb-thumbnail.webp':
2025-10-14 06:54:47.769488+00:00Metadata:
2025-10-14 06:54:47.769495+00:00major_brand : qt
2025-10-14 06:54:47.769503+00:00minor_version : 0
2025-10-14 06:54:47.769510+00:00compatible_brands: qt
2025-10-14 06:54:47.769517+00:00encoder : Lavf61.7.100
2025-10-14 06:54:47.769524+00:00Stream #0:0(und): Video: webp, 1 reference frame, yuv420p(progressive), 250x444, q=2-31, 200 kb/s, 12 fps, 1k tbn (default)
2025-10-14 06:54:47.769532+00:00Metadata:
2025-10-14 06:54:47.769539+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.769546+00:00handler_name : Core Media Video
2025-10-14 06:54:47.769554+00:00vendor_id : [0][0][0][0]
2025-10-14 06:54:47.769561+00:00encoder : Lavc61.19.101 libwebp_anim
2025-10-14 06:54:47.769568+00:00[out#0/webp @ 0x55b9596e8f40] Starting thread...
2025-10-14 06:54:47.769575+00:00[Parsed_fps_0 @ 0x7fed90001840] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
2025-10-14 06:54:47.769582+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Encoder thread received EOF
2025-10-14 06:54:47.769590+00:00[libwebp encoder @ 0x55b9596fd580] WebPAnimEncoderAssemble() failed with error: 1
2025-10-14 06:54:47.769597+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Error submitting video frame to the encoder
2025-10-14 06:54:47.769604+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Error flushing encoder: Cannot allocate memory
2025-10-14 06:54:47.769611+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Task finished with error code: -12 (Cannot allocate memory)
2025-10-14 06:54:47.769618+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Terminating thread with return code -12 (Cannot allocate memory)
2025-10-14 06:54:47.769626+00:00[out#0/webp @ 0x55b9596e8f40] All streams finished
2025-10-14 06:54:47.769633+00:00[out#0/webp @ 0x55b9596e8f40] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.769640+00:00[vf#0:0 @ 0x55b959706a00] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.769647+00:00[AVIOContext @ 0x55b95973a600] Statistics: 0 bytes written, 0 seeks, 0 writeouts
2025-10-14 06:54:47.769655+00:00[out#0/webp @ 0x55b9596e8f40] Output file #0 (/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/32/c6/32c64bcf-d816-4f2d-b035-390324043fdb-thumbnail.webp):
2025-10-14 06:54:47.769662+00:00[out#0/webp @ 0x55b9596e8f40] Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes);
2025-10-14 06:54:47.769669+00:00[out#0/webp @ 0x55b9596e8f40] Total: 0 packets (0 bytes) muxed
2025-10-14 06:54:47.769677+00:00[out#0/webp @ 0x55b9596e8f40] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
2025-10-14 06:54:47.769684+00:00[out#0/webp @ 0x55b9596e8f40] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used)
2025-10-14 06:54:47.769691+00:00frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
2025-10-14 06:54:47.769700+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Input file #0 (/Google/years/2019/IMG_3238.TRIM.MOV):
2025-10-14 06:54:47.769707+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Input stream #0:1 (video): 57 packets read (174259 bytes); 0 frames decoded; 0 decode errors;
2025-10-14 06:54:47.769714+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Total: 57 packets (174259 bytes) demuxed
2025-10-14 06:54:47.769721+00:00[AVIOContext @ 0x55b9596ea0c0] Statistics: 214915 bytes read, 2 seeks
2025-10-14 06:54:47.769729+00:00Conversion failed!
2025-10-14 06:54:47.769736+00:00
2025-10-14 06:54:47.808011+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:{"id":"32c64bcf-d816-4f2d-b035-390324043fdb"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed!
2025-10-14 06:54:47.808043+00:00
2025-10-14 06:54:47.812666+00:00Error: ffmpeg exited with code 244: Conversion failed!
2025-10-14 06:54:47.812691+00:002025-10-14T06:54:47.812691349Z
2025-10-14 06:54:47.812700+00:00at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
2025-10-14 06:54:47.812715+00:00at ChildProcess.emit (node:events:518:28)
2025-10-14 06:54:47.812724+00:00at ChildProcess._handle.onexit (node:internal/child_process:293:12)
2025-10-14 06:54:47.923772+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:MediaRepository]  libavdevice 61. 3.100 / 61. 3.100
2025-10-14 06:54:47.923800+00:00libavfilter 10. 4.100 / 10. 4.100
2025-10-14 06:54:47.923809+00:00libswscale 8. 3.100 / 8. 3.100
2025-10-14 06:54:47.923842+00:00libswresample 5. 3.100 / 5. 3.100
2025-10-14 06:54:47.923852+00:00libpostproc 58. 3.100 / 58. 3.100
2025-10-14 06:54:47.923860+00:00[h264 @ 0x56103e6f9540] Reinit context to 640x1136, pix_fmt: yuvj420p
2025-10-14 06:54:47.923867+00:00[mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6940] max_analyze_duration 5000000 reached at 5031404 microseconds st:1
2025-10-14 06:54:47.923874+00:00Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/iCloud/MOV/IMG_3238.TRIM.MOV':
2025-10-14 06:54:47.923882+00:00Metadata:
2025-10-14 06:54:47.923889+00:00major_brand : qt
2025-10-14 06:54:47.923896+00:00minor_version : 0
2025-10-14 06:54:47.923905+00:00compatible_brands: qt
2025-10-14 06:54:47.923912+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.923919+00:00Duration: 00:00:05.59, start: 0.000000, bitrate: 256 kb/s
2025-10-14 06:54:47.923926+00:00Stream #0:0[0x1](und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
2025-10-14 06:54:47.923933+00:00Metadata:
2025-10-14 06:54:47.923940+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.923947+00:00handler_name : Core Media Audio
2025-10-14 06:54:47.923957+00:00vendor_id : [0][0][0][0]
2025-10-14 06:54:47.923964+00:00Stream #0:1[0x2](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, smpte170m/bt709/unknown, progressive, left), 640x1136, 165 kb/s, 6.76 fps, 60 tbr, 600 tbn (default)
2025-10-14 06:54:47.923971+00:00Metadata:
2025-10-14 06:54:47.923978+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.923985+00:00handler_name : Core Media Video
2025-10-14 06:54:47.923992+00:00vendor_id : [0][0][0][0]
2025-10-14 06:54:47.923999+00:00encoder : 'avc1'
2025-10-14 06:54:47.924006+00:00[out#0/webp @ 0x56103e6fdf40] No explicit maps, mapping streams automatically...
2025-10-14 06:54:47.924013+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Created video stream from input stream 0:1
2025-10-14 06:54:47.924019+00:00[Parsed_thumbnail_1 @ 0x56103e711640] batch size: 12 frames
2025-10-14 06:54:47.924026+00:00[Parsed_scale_5 @ 0x56103e747440] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0
2025-10-14 06:54:47.924035+00:00[Parsed_fps_0 @ 0x56103e76e0c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
2025-10-14 06:54:47.924042+00:00Stream mapping:
2025-10-14 06:54:47.924049+00:00Stream #0:1 -> #0:0 (h264 (native) -> webp (libwebp_anim))
2025-10-14 06:54:47.924056+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Starting thread...
2025-10-14 06:54:47.924063+00:00[vf#0:0 @ 0x56103e71ba00] Starting thread...
2025-10-14 06:54:47.924071+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Starting thread...
2025-10-14 06:54:47.924079+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Starting thread...
2025-10-14 06:54:47.924086+00:00Press [q] to stop, [?] for help
2025-10-14 06:54:47.924093+00:00[h264 @ 0x56103e716f00] Reinit context to 640x1136, pix_fmt: yuvj420p
2025-10-14 06:54:47.924099+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] EOF while reading input
2025-10-14 06:54:47.924106+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.924113+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Decoder thread received EOF packet
2025-10-14 06:54:47.924120+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Decoder returned EOF, finishing
2025-10-14 06:54:47.924127+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.924134+00:00[Parsed_thumbnail_1 @ 0x7fca54002d40] batch size: 12 frames
2025-10-14 06:54:47.924141+00:00[Parsed_scale_5 @ 0x7fca54003880] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0
2025-10-14 06:54:47.924148+00:00[graph -1 input from stream 0:1 @ 0x7fca5401d300] w:640 h:1136 pixfmt:yuvj420p tb:1/600 fr:60/1 sar:0/1 csp:smpte170m range:pc
2025-10-14 06:54:47.924155+00:00[auto_scale_0 @ 0x7fca540209c0] w:iw h:ih flags:'' interl:0
2025-10-14 06:54:47.924162+00:00[format @ 0x7fca5401de00] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_scale_5' and the filter 'format'
2025-10-14 06:54:47.924169+00:00[Parsed_fps_0 @ 0x7fca54001840] Set first pts to (in:0 out:0) from start time 0.000000
2025-10-14 06:54:47.924176+00:00[Parsed_fps_0 @ 0x7fca54001840] fps=12/1
2025-10-14 06:54:47.924183+00:00[swscaler @ 0x7fca54032c40] deprecated pixel format used, make sure you did set range correctly
2025-10-14 06:54:47.924191+00:00[Parsed_scale_5 @ 0x7fca54003880] w:640 h:1136 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 flags:0x00042200
2025-10-14 06:54:47.924211+00:00[Parsed_scale_5 @ 0x7fca54003880] [framesync @ 0x7fca540039a8] Selected 1/12 time base
2025-10-14 06:54:47.924221+00:00[Parsed_scale_5 @ 0x7fca54003880] [framesync @ 0x7fca540039a8] Sync level 1
2025-10-14 06:54:47.924228+00:00[swscaler @ 0x7fca5413a480] deprecated pixel format used, make sure you did set range correctly
2025-10-14 06:54:47.924235+00:00[auto_scale_0 @ 0x7fca540209c0] w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuv420p csp:smpte170m range:tv sar:0/1 flags:0x00000004
2025-10-14 06:54:47.924243+00:00[auto_scale_0 @ 0x7fca540209c0] [framesync @ 0x7fca540212e8] Selected 1/12 time base
2025-10-14 06:54:47.924250+00:00[auto_scale_0 @ 0x7fca540209c0] [framesync @ 0x7fca540212e8] Sync level 1
2025-10-14 06:54:47.924257+00:00[Parsed_scale_5 @ 0x7fca54003880] [framesync @ 0x7fca540039a8] Sync level 0
2025-10-14 06:54:47.924264+00:00[auto_scale_0 @ 0x7fca540209c0] [framesync @ 0x7fca540212e8] Sync level 0
2025-10-14 06:54:47.924271+00:00[vf#0:0 @ 0x56103e71ba00] Filtergraph returned EOF, finishing
2025-10-14 06:54:47.924278+00:00[vf#0:0 @ 0x56103e71ba00] All consumers returned EOF
2025-10-14 06:54:47.924285+00:00[vf#0:0 @ 0x56103e747c00] No filtered frames for output stream, trying to initialize anyway.
2025-10-14 06:54:47.924294+00:00Output #0, webp, to '/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/80/4a/804a5ff8-3acf-4ff4-91cc-93f782178dc3-thumbnail.webp':
2025-10-14 06:54:47.924301+00:00Metadata:
2025-10-14 06:54:47.924308+00:00major_brand : qt
2025-10-14 06:54:47.924315+00:00minor_version : 0
2025-10-14 06:54:47.924322+00:00compatible_brands: qt
2025-10-14 06:54:47.924329+00:00encoder : Lavf61.7.100
2025-10-14 06:54:47.924336+00:00Stream #0:0(und): Video: webp, 1 reference frame, yuv420p(progressive), 250x444, q=2-31, 200 kb/s, 12 fps, 1k tbn (default)
2025-10-14 06:54:47.924357+00:00Metadata:
2025-10-14 06:54:47.924364+00:00creation_time : 2019-08-16T10:32:08.000000Z
2025-10-14 06:54:47.924371+00:00handler_name : Core Media Video
2025-10-14 06:54:47.924378+00:00vendor_id : [0][0][0][0]
2025-10-14 06:54:47.924386+00:00encoder : Lavc61.19.101 libwebp_anim
2025-10-14 06:54:47.924395+00:00[out#0/webp @ 0x56103e6fdf40] Starting thread...
2025-10-14 06:54:47.924402+00:00[Parsed_fps_0 @ 0x7fca54001840] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
2025-10-14 06:54:47.924409+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Encoder thread received EOF
2025-10-14 06:54:47.924416+00:00[libwebp encoder @ 0x56103e712580] WebPAnimEncoderAssemble() failed with error: 1
2025-10-14 06:54:47.924423+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Error submitting video frame to the encoder
2025-10-14 06:54:47.924431+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Error flushing encoder: Cannot allocate memory
2025-10-14 06:54:47.924441+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Task finished with error code: -12 (Cannot allocate memory)
2025-10-14 06:54:47.924449+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Terminating thread with return code -12 (Cannot allocate memory)
2025-10-14 06:54:47.924456+00:00[out#0/webp @ 0x56103e6fdf40] All streams finished
2025-10-14 06:54:47.924463+00:00[out#0/webp @ 0x56103e6fdf40] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.924471+00:00[vf#0:0 @ 0x56103e71ba00] Terminating thread with return code 0 (success)
2025-10-14 06:54:47.924478+00:00[AVIOContext @ 0x56103e74f600] Statistics: 0 bytes written, 0 seeks, 0 writeouts
2025-10-14 06:54:47.924486+00:00[out#0/webp @ 0x56103e6fdf40] Output file #0 (/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/80/4a/804a5ff8-3acf-4ff4-91cc-93f782178dc3-thumbnail.webp):
2025-10-14 06:54:47.924493+00:00[out#0/webp @ 0x56103e6fdf40] Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes);
2025-10-14 06:54:47.924500+00:00[out#0/webp @ 0x56103e6fdf40] Total: 0 packets (0 bytes) muxed
2025-10-14 06:54:47.924507+00:00[out#0/webp @ 0x56103e6fdf40] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
2025-10-14 06:54:47.924515+00:00[out#0/webp @ 0x56103e6fdf40] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used)
2025-10-14 06:54:47.924522+00:00frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
2025-10-14 06:54:47.924529+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Input file #0 (/iCloud/MOV/IMG_3238.TRIM.MOV):
2025-10-14 06:54:47.924536+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Input stream #0:1 (video): 57 packets read (174259 bytes); 0 frames decoded; 0 decode errors;
2025-10-14 06:54:47.924543+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Total: 57 packets (174259 bytes) demuxed
2025-10-14 06:54:47.924551+00:00[AVIOContext @ 0x56103e6ff0c0] Statistics: 214915 bytes read, 2 seeks
2025-10-14 06:54:47.924558+00:00Conversion failed!
2025-10-14 06:54:47.924565+00:00
2025-10-14 06:54:47.937746+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:{"id":"804a5ff8-3acf-4ff4-91cc-93f782178dc3"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed!
2025-10-14 06:54:47.937776+00:00
2025-10-14 06:54:47.939526+00:00Error: ffmpeg exited with code 244: Conversion failed!
2025-10-14 06:54:47.939551+00:002025-10-14T06:54:47.939551022Z
2025-10-14 06:54:47.939559+00:00at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/processor.js:180:22)
2025-10-14 06:54:47.939568+00:00at ChildProcess.emit (node:events:518:28)
2025-10-14 06:54:47.939575+00:00at ChildProcess._handle.onexit (node:internal/child_process:293:12)

Additional information

Image
Originally created by @grabbels on GitHub (Oct 14, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug For most video's that I extracted from my iPhone 13 mini using the Apple Privacy download tool, it seems that most videos (but not all) fail to generate thumbnails. The videos that fail and those that don't are in the same format and resolution and have no obvious dissimilarities from each other. Right now my library has over 500 videos without a thumbnail, all of them being videos. I've attached examples of videos below as well as the docker log for manually running thumbnail generation. Example of video that fails to generate a thumbnail: https://drive.google.com/file/d/1UgPY26Cuc51zdfVt7K3bIf5ETX-les9r/view?usp=sharing Example of video that does generate a thumbnail: https://drive.google.com/file/d/1AUDFW7JIJTWGVHQDc-blYnHC5W-9TvZv/view?usp=sharing ### The OS that Immich Server is running on TrueNAS 24.10.2.4/Docker ### Version of Immich Server 2.0.1 ### Version of Immich Mobile App 2.0.1 ### Platform with the issue - [x] Server - [ ] Web - [ ] Mobile ### Device make and model Intel Xeon E3-1225v5, 32GB ECC RAM ### Reproduction steps 1. Upload both videos to Immich sever 2. Thumbnail generation fails for one of them ### Relevant log output ```shell 2025-10-14 06:54:47.768931+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:MediaRepository]  libavdevice 61. 3.100 / 61. 3.100 2025-10-14 06:54:47.769021+00:00libavfilter 10. 4.100 / 10. 4.100 2025-10-14 06:54:47.769033+00:00libswscale 8. 3.100 / 8. 3.100 2025-10-14 06:54:47.769041+00:00libswresample 5. 3.100 / 5. 3.100 2025-10-14 06:54:47.769048+00:00libpostproc 58. 3.100 / 58. 3.100 2025-10-14 06:54:47.769055+00:00[h264 @ 0x55b9596e4540] Reinit context to 640x1136, pix_fmt: yuvj420p 2025-10-14 06:54:47.769063+00:00[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1940] max_analyze_duration 5000000 reached at 5031404 microseconds st:1 2025-10-14 06:54:47.769070+00:00Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Google/years/2019/IMG_3238.TRIM.MOV': 2025-10-14 06:54:47.769077+00:00Metadata: 2025-10-14 06:54:47.769084+00:00major_brand : qt 2025-10-14 06:54:47.769092+00:00minor_version : 0 2025-10-14 06:54:47.769099+00:00compatible_brands: qt 2025-10-14 06:54:47.769106+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.769114+00:00Duration: 00:00:05.59, start: 0.000000, bitrate: 256 kb/s 2025-10-14 06:54:47.769121+00:00Stream #0:0[0x1](und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default) 2025-10-14 06:54:47.769128+00:00Metadata: 2025-10-14 06:54:47.769137+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.769145+00:00handler_name : Core Media Audio 2025-10-14 06:54:47.769152+00:00vendor_id : [0][0][0][0] 2025-10-14 06:54:47.769159+00:00Stream #0:1[0x2](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, smpte170m/bt709/unknown, progressive, left), 640x1136, 165 kb/s, 6.76 fps, 60 tbr, 600 tbn (default) 2025-10-14 06:54:47.769168+00:00Metadata: 2025-10-14 06:54:47.769175+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.769182+00:00handler_name : Core Media Video 2025-10-14 06:54:47.769189+00:00vendor_id : [0][0][0][0] 2025-10-14 06:54:47.769197+00:00encoder : 'avc1' 2025-10-14 06:54:47.769204+00:00[out#0/webp @ 0x55b9596e8f40] No explicit maps, mapping streams automatically... 2025-10-14 06:54:47.769211+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Created video stream from input stream 0:1 2025-10-14 06:54:47.769219+00:00[Parsed_thumbnail_1 @ 0x55b9596fc640] batch size: 12 frames 2025-10-14 06:54:47.769226+00:00[Parsed_scale_5 @ 0x55b959732440] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0 2025-10-14 06:54:47.769233+00:00[Parsed_fps_0 @ 0x55b9597590c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. 2025-10-14 06:54:47.769241+00:00Stream mapping: 2025-10-14 06:54:47.769248+00:00Stream #0:1 -> #0:0 (h264 (native) -> webp (libwebp_anim)) 2025-10-14 06:54:47.769255+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Starting thread... 2025-10-14 06:54:47.769263+00:00[vf#0:0 @ 0x55b959706a00] Starting thread... 2025-10-14 06:54:47.769271+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Starting thread... 2025-10-14 06:54:47.769279+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Starting thread... 2025-10-14 06:54:47.769286+00:00Press [q] to stop, [?] for help 2025-10-14 06:54:47.769293+00:00[h264 @ 0x55b959701f00] Reinit context to 640x1136, pix_fmt: yuvj420p 2025-10-14 06:54:47.769300+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] EOF while reading input 2025-10-14 06:54:47.769308+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.769316+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Decoder thread received EOF packet 2025-10-14 06:54:47.769323+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Decoder returned EOF, finishing 2025-10-14 06:54:47.769330+00:00[vist#0:1/h264 @ 0x55b959703400] [dec:h264 @ 0x55b95977e980] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.769337+00:00[Parsed_thumbnail_1 @ 0x7fed90002d40] batch size: 12 frames 2025-10-14 06:54:47.769344+00:00[Parsed_scale_5 @ 0x7fed90003880] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0 2025-10-14 06:54:47.769351+00:00[graph -1 input from stream 0:1 @ 0x7fed9001d300] w:640 h:1136 pixfmt:yuvj420p tb:1/600 fr:60/1 sar:0/1 csp:smpte170m range:pc 2025-10-14 06:54:47.769359+00:00[auto_scale_0 @ 0x7fed900209c0] w:iw h:ih flags:'' interl:0 2025-10-14 06:54:47.769366+00:00[format @ 0x7fed9001de00] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_scale_5' and the filter 'format' 2025-10-14 06:54:47.769373+00:00[Parsed_fps_0 @ 0x7fed90001840] Set first pts to (in:0 out:0) from start time 0.000000 2025-10-14 06:54:47.769380+00:00[Parsed_fps_0 @ 0x7fed90001840] fps=12/1 2025-10-14 06:54:47.769387+00:00[swscaler @ 0x7fed90032c40] deprecated pixel format used, make sure you did set range correctly 2025-10-14 06:54:47.769394+00:00[Parsed_scale_5 @ 0x7fed90003880] w:640 h:1136 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 flags:0x00042200 2025-10-14 06:54:47.769402+00:00[Parsed_scale_5 @ 0x7fed90003880] [framesync @ 0x7fed900039a8] Selected 1/12 time base 2025-10-14 06:54:47.769409+00:00[Parsed_scale_5 @ 0x7fed90003880] [framesync @ 0x7fed900039a8] Sync level 1 2025-10-14 06:54:47.769416+00:00[swscaler @ 0x7fed9013a480] deprecated pixel format used, make sure you did set range correctly 2025-10-14 06:54:47.769423+00:00[auto_scale_0 @ 0x7fed900209c0] w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuv420p csp:smpte170m range:tv sar:0/1 flags:0x00000004 2025-10-14 06:54:47.769430+00:00[auto_scale_0 @ 0x7fed900209c0] [framesync @ 0x7fed900212e8] Selected 1/12 time base 2025-10-14 06:54:47.769438+00:00[auto_scale_0 @ 0x7fed900209c0] [framesync @ 0x7fed900212e8] Sync level 1 2025-10-14 06:54:47.769445+00:00[Parsed_scale_5 @ 0x7fed90003880] [framesync @ 0x7fed900039a8] Sync level 0 2025-10-14 06:54:47.769452+00:00[auto_scale_0 @ 0x7fed900209c0] [framesync @ 0x7fed900212e8] Sync level 0 2025-10-14 06:54:47.769459+00:00[vf#0:0 @ 0x55b959706a00] Filtergraph returned EOF, finishing 2025-10-14 06:54:47.769466+00:00[vf#0:0 @ 0x55b959706a00] All consumers returned EOF 2025-10-14 06:54:47.769473+00:00[vf#0:0 @ 0x55b959732c00] No filtered frames for output stream, trying to initialize anyway. 2025-10-14 06:54:47.769481+00:00Output #0, webp, to '/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/32/c6/32c64bcf-d816-4f2d-b035-390324043fdb-thumbnail.webp': 2025-10-14 06:54:47.769488+00:00Metadata: 2025-10-14 06:54:47.769495+00:00major_brand : qt 2025-10-14 06:54:47.769503+00:00minor_version : 0 2025-10-14 06:54:47.769510+00:00compatible_brands: qt 2025-10-14 06:54:47.769517+00:00encoder : Lavf61.7.100 2025-10-14 06:54:47.769524+00:00Stream #0:0(und): Video: webp, 1 reference frame, yuv420p(progressive), 250x444, q=2-31, 200 kb/s, 12 fps, 1k tbn (default) 2025-10-14 06:54:47.769532+00:00Metadata: 2025-10-14 06:54:47.769539+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.769546+00:00handler_name : Core Media Video 2025-10-14 06:54:47.769554+00:00vendor_id : [0][0][0][0] 2025-10-14 06:54:47.769561+00:00encoder : Lavc61.19.101 libwebp_anim 2025-10-14 06:54:47.769568+00:00[out#0/webp @ 0x55b9596e8f40] Starting thread... 2025-10-14 06:54:47.769575+00:00[Parsed_fps_0 @ 0x7fed90001840] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. 2025-10-14 06:54:47.769582+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Encoder thread received EOF 2025-10-14 06:54:47.769590+00:00[libwebp encoder @ 0x55b9596fd580] WebPAnimEncoderAssemble() failed with error: 1 2025-10-14 06:54:47.769597+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Error submitting video frame to the encoder 2025-10-14 06:54:47.769604+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Error flushing encoder: Cannot allocate memory 2025-10-14 06:54:47.769611+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Task finished with error code: -12 (Cannot allocate memory) 2025-10-14 06:54:47.769618+00:00[vost#0:0/libwebp_anim @ 0x55b9596fb2c0] Terminating thread with return code -12 (Cannot allocate memory) 2025-10-14 06:54:47.769626+00:00[out#0/webp @ 0x55b9596e8f40] All streams finished 2025-10-14 06:54:47.769633+00:00[out#0/webp @ 0x55b9596e8f40] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.769640+00:00[vf#0:0 @ 0x55b959706a00] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.769647+00:00[AVIOContext @ 0x55b95973a600] Statistics: 0 bytes written, 0 seeks, 0 writeouts 2025-10-14 06:54:47.769655+00:00[out#0/webp @ 0x55b9596e8f40] Output file #0 (/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/32/c6/32c64bcf-d816-4f2d-b035-390324043fdb-thumbnail.webp): 2025-10-14 06:54:47.769662+00:00[out#0/webp @ 0x55b9596e8f40] Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes); 2025-10-14 06:54:47.769669+00:00[out#0/webp @ 0x55b9596e8f40] Total: 0 packets (0 bytes) muxed 2025-10-14 06:54:47.769677+00:00[out#0/webp @ 0x55b9596e8f40] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown 2025-10-14 06:54:47.769684+00:00[out#0/webp @ 0x55b9596e8f40] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used) 2025-10-14 06:54:47.769691+00:00frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A 2025-10-14 06:54:47.769700+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Input file #0 (/Google/years/2019/IMG_3238.TRIM.MOV): 2025-10-14 06:54:47.769707+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Input stream #0:1 (video): 57 packets read (174259 bytes); 0 frames decoded; 0 decode errors; 2025-10-14 06:54:47.769714+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b9596e1680] Total: 57 packets (174259 bytes) demuxed 2025-10-14 06:54:47.769721+00:00[AVIOContext @ 0x55b9596ea0c0] Statistics: 214915 bytes read, 2 seeks 2025-10-14 06:54:47.769729+00:00Conversion failed! 2025-10-14 06:54:47.769736+00:00 2025-10-14 06:54:47.808011+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:{"id":"32c64bcf-d816-4f2d-b035-390324043fdb"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed! 2025-10-14 06:54:47.808043+00:00 2025-10-14 06:54:47.812666+00:00Error: ffmpeg exited with code 244: Conversion failed! 2025-10-14 06:54:47.812691+00:002025-10-14T06:54:47.812691349Z 2025-10-14 06:54:47.812700+00:00at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/processor.js:180:22) 2025-10-14 06:54:47.812715+00:00at ChildProcess.emit (node:events:518:28) 2025-10-14 06:54:47.812724+00:00at ChildProcess._handle.onexit (node:internal/child_process:293:12) 2025-10-14 06:54:47.923772+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:MediaRepository]  libavdevice 61. 3.100 / 61. 3.100 2025-10-14 06:54:47.923800+00:00libavfilter 10. 4.100 / 10. 4.100 2025-10-14 06:54:47.923809+00:00libswscale 8. 3.100 / 8. 3.100 2025-10-14 06:54:47.923842+00:00libswresample 5. 3.100 / 5. 3.100 2025-10-14 06:54:47.923852+00:00libpostproc 58. 3.100 / 58. 3.100 2025-10-14 06:54:47.923860+00:00[h264 @ 0x56103e6f9540] Reinit context to 640x1136, pix_fmt: yuvj420p 2025-10-14 06:54:47.923867+00:00[mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6940] max_analyze_duration 5000000 reached at 5031404 microseconds st:1 2025-10-14 06:54:47.923874+00:00Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/iCloud/MOV/IMG_3238.TRIM.MOV': 2025-10-14 06:54:47.923882+00:00Metadata: 2025-10-14 06:54:47.923889+00:00major_brand : qt 2025-10-14 06:54:47.923896+00:00minor_version : 0 2025-10-14 06:54:47.923905+00:00compatible_brands: qt 2025-10-14 06:54:47.923912+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.923919+00:00Duration: 00:00:05.59, start: 0.000000, bitrate: 256 kb/s 2025-10-14 06:54:47.923926+00:00Stream #0:0[0x1](und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default) 2025-10-14 06:54:47.923933+00:00Metadata: 2025-10-14 06:54:47.923940+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.923947+00:00handler_name : Core Media Audio 2025-10-14 06:54:47.923957+00:00vendor_id : [0][0][0][0] 2025-10-14 06:54:47.923964+00:00Stream #0:1[0x2](und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, smpte170m/bt709/unknown, progressive, left), 640x1136, 165 kb/s, 6.76 fps, 60 tbr, 600 tbn (default) 2025-10-14 06:54:47.923971+00:00Metadata: 2025-10-14 06:54:47.923978+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.923985+00:00handler_name : Core Media Video 2025-10-14 06:54:47.923992+00:00vendor_id : [0][0][0][0] 2025-10-14 06:54:47.923999+00:00encoder : 'avc1' 2025-10-14 06:54:47.924006+00:00[out#0/webp @ 0x56103e6fdf40] No explicit maps, mapping streams automatically... 2025-10-14 06:54:47.924013+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Created video stream from input stream 0:1 2025-10-14 06:54:47.924019+00:00[Parsed_thumbnail_1 @ 0x56103e711640] batch size: 12 frames 2025-10-14 06:54:47.924026+00:00[Parsed_scale_5 @ 0x56103e747440] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0 2025-10-14 06:54:47.924035+00:00[Parsed_fps_0 @ 0x56103e76e0c0] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. 2025-10-14 06:54:47.924042+00:00Stream mapping: 2025-10-14 06:54:47.924049+00:00Stream #0:1 -> #0:0 (h264 (native) -> webp (libwebp_anim)) 2025-10-14 06:54:47.924056+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Starting thread... 2025-10-14 06:54:47.924063+00:00[vf#0:0 @ 0x56103e71ba00] Starting thread... 2025-10-14 06:54:47.924071+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Starting thread... 2025-10-14 06:54:47.924079+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Starting thread... 2025-10-14 06:54:47.924086+00:00Press [q] to stop, [?] for help 2025-10-14 06:54:47.924093+00:00[h264 @ 0x56103e716f00] Reinit context to 640x1136, pix_fmt: yuvj420p 2025-10-14 06:54:47.924099+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] EOF while reading input 2025-10-14 06:54:47.924106+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.924113+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Decoder thread received EOF packet 2025-10-14 06:54:47.924120+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Decoder returned EOF, finishing 2025-10-14 06:54:47.924127+00:00[vist#0:1/h264 @ 0x56103e718400] [dec:h264 @ 0x56103e793980] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.924134+00:00[Parsed_thumbnail_1 @ 0x7fca54002d40] batch size: 12 frames 2025-10-14 06:54:47.924141+00:00[Parsed_scale_5 @ 0x7fca54003880] w:250 h:-2 flags:'lanczos+accurate_rnd+full_chroma_int' interl:0 2025-10-14 06:54:47.924148+00:00[graph -1 input from stream 0:1 @ 0x7fca5401d300] w:640 h:1136 pixfmt:yuvj420p tb:1/600 fr:60/1 sar:0/1 csp:smpte170m range:pc 2025-10-14 06:54:47.924155+00:00[auto_scale_0 @ 0x7fca540209c0] w:iw h:ih flags:'' interl:0 2025-10-14 06:54:47.924162+00:00[format @ 0x7fca5401de00] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_scale_5' and the filter 'format' 2025-10-14 06:54:47.924169+00:00[Parsed_fps_0 @ 0x7fca54001840] Set first pts to (in:0 out:0) from start time 0.000000 2025-10-14 06:54:47.924176+00:00[Parsed_fps_0 @ 0x7fca54001840] fps=12/1 2025-10-14 06:54:47.924183+00:00[swscaler @ 0x7fca54032c40] deprecated pixel format used, make sure you did set range correctly 2025-10-14 06:54:47.924191+00:00[Parsed_scale_5 @ 0x7fca54003880] w:640 h:1136 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 flags:0x00042200 2025-10-14 06:54:47.924211+00:00[Parsed_scale_5 @ 0x7fca54003880] [framesync @ 0x7fca540039a8] Selected 1/12 time base 2025-10-14 06:54:47.924221+00:00[Parsed_scale_5 @ 0x7fca54003880] [framesync @ 0x7fca540039a8] Sync level 1 2025-10-14 06:54:47.924228+00:00[swscaler @ 0x7fca5413a480] deprecated pixel format used, make sure you did set range correctly 2025-10-14 06:54:47.924235+00:00[auto_scale_0 @ 0x7fca540209c0] w:250 h:444 fmt:yuvj420p csp:smpte170m range:pc sar:0/1 -> w:250 h:444 fmt:yuv420p csp:smpte170m range:tv sar:0/1 flags:0x00000004 2025-10-14 06:54:47.924243+00:00[auto_scale_0 @ 0x7fca540209c0] [framesync @ 0x7fca540212e8] Selected 1/12 time base 2025-10-14 06:54:47.924250+00:00[auto_scale_0 @ 0x7fca540209c0] [framesync @ 0x7fca540212e8] Sync level 1 2025-10-14 06:54:47.924257+00:00[Parsed_scale_5 @ 0x7fca54003880] [framesync @ 0x7fca540039a8] Sync level 0 2025-10-14 06:54:47.924264+00:00[auto_scale_0 @ 0x7fca540209c0] [framesync @ 0x7fca540212e8] Sync level 0 2025-10-14 06:54:47.924271+00:00[vf#0:0 @ 0x56103e71ba00] Filtergraph returned EOF, finishing 2025-10-14 06:54:47.924278+00:00[vf#0:0 @ 0x56103e71ba00] All consumers returned EOF 2025-10-14 06:54:47.924285+00:00[vf#0:0 @ 0x56103e747c00] No filtered frames for output stream, trying to initialize anyway. 2025-10-14 06:54:47.924294+00:00Output #0, webp, to '/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/80/4a/804a5ff8-3acf-4ff4-91cc-93f782178dc3-thumbnail.webp': 2025-10-14 06:54:47.924301+00:00Metadata: 2025-10-14 06:54:47.924308+00:00major_brand : qt 2025-10-14 06:54:47.924315+00:00minor_version : 0 2025-10-14 06:54:47.924322+00:00compatible_brands: qt 2025-10-14 06:54:47.924329+00:00encoder : Lavf61.7.100 2025-10-14 06:54:47.924336+00:00Stream #0:0(und): Video: webp, 1 reference frame, yuv420p(progressive), 250x444, q=2-31, 200 kb/s, 12 fps, 1k tbn (default) 2025-10-14 06:54:47.924357+00:00Metadata: 2025-10-14 06:54:47.924364+00:00creation_time : 2019-08-16T10:32:08.000000Z 2025-10-14 06:54:47.924371+00:00handler_name : Core Media Video 2025-10-14 06:54:47.924378+00:00vendor_id : [0][0][0][0] 2025-10-14 06:54:47.924386+00:00encoder : Lavc61.19.101 libwebp_anim 2025-10-14 06:54:47.924395+00:00[out#0/webp @ 0x56103e6fdf40] Starting thread... 2025-10-14 06:54:47.924402+00:00[Parsed_fps_0 @ 0x7fca54001840] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. 2025-10-14 06:54:47.924409+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Encoder thread received EOF 2025-10-14 06:54:47.924416+00:00[libwebp encoder @ 0x56103e712580] WebPAnimEncoderAssemble() failed with error: 1 2025-10-14 06:54:47.924423+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Error submitting video frame to the encoder 2025-10-14 06:54:47.924431+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Error flushing encoder: Cannot allocate memory 2025-10-14 06:54:47.924441+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Task finished with error code: -12 (Cannot allocate memory) 2025-10-14 06:54:47.924449+00:00[vost#0:0/libwebp_anim @ 0x56103e7102c0] Terminating thread with return code -12 (Cannot allocate memory) 2025-10-14 06:54:47.924456+00:00[out#0/webp @ 0x56103e6fdf40] All streams finished 2025-10-14 06:54:47.924463+00:00[out#0/webp @ 0x56103e6fdf40] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.924471+00:00[vf#0:0 @ 0x56103e71ba00] Terminating thread with return code 0 (success) 2025-10-14 06:54:47.924478+00:00[AVIOContext @ 0x56103e74f600] Statistics: 0 bytes written, 0 seeks, 0 writeouts 2025-10-14 06:54:47.924486+00:00[out#0/webp @ 0x56103e6fdf40] Output file #0 (/data/thumbs/334127a7-e206-42f6-bae9-91e48549ccb1/80/4a/804a5ff8-3acf-4ff4-91cc-93f782178dc3-thumbnail.webp): 2025-10-14 06:54:47.924493+00:00[out#0/webp @ 0x56103e6fdf40] Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes); 2025-10-14 06:54:47.924500+00:00[out#0/webp @ 0x56103e6fdf40] Total: 0 packets (0 bytes) muxed 2025-10-14 06:54:47.924507+00:00[out#0/webp @ 0x56103e6fdf40] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown 2025-10-14 06:54:47.924515+00:00[out#0/webp @ 0x56103e6fdf40] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used) 2025-10-14 06:54:47.924522+00:00frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A 2025-10-14 06:54:47.924529+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Input file #0 (/iCloud/MOV/IMG_3238.TRIM.MOV): 2025-10-14 06:54:47.924536+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Input stream #0:1 (video): 57 packets read (174259 bytes); 0 frames decoded; 0 decode errors; 2025-10-14 06:54:47.924543+00:00[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x56103e6f6680] Total: 57 packets (174259 bytes) demuxed 2025-10-14 06:54:47.924551+00:00[AVIOContext @ 0x56103e6ff0c0] Statistics: 214915 bytes read, 2 seeks 2025-10-14 06:54:47.924558+00:00Conversion failed! 2025-10-14 06:54:47.924565+00:00 2025-10-14 06:54:47.937746+00:00[Nest] 7 - 10/14/2025, 8:54:47 AM  ERROR [Microservices:{"id":"804a5ff8-3acf-4ff4-91cc-93f782178dc3"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed! 2025-10-14 06:54:47.937776+00:00 2025-10-14 06:54:47.939526+00:00Error: ffmpeg exited with code 244: Conversion failed! 2025-10-14 06:54:47.939551+00:002025-10-14T06:54:47.939551022Z 2025-10-14 06:54:47.939559+00:00at ChildProcess.<anonymous> (/usr/src/app/server/node_modules/.pnpm/fluent-ffmpeg@2.1.3/node_modules/fluent-ffmpeg/lib/processor.js:180:22) 2025-10-14 06:54:47.939568+00:00at ChildProcess.emit (node:events:518:28) 2025-10-14 06:54:47.939575+00:00at ChildProcess._handle.onexit (node:internal/child_process:293:12) ``` ### Additional information <img width="160" height="268" alt="Image" src="https://github.com/user-attachments/assets/7fa2a99b-0f3c-4ce9-bb94-2480cbb85657" />
Author
Owner

@skatsubo commented on GitHub (Nov 14, 2025):

Thanks for providing detailed info.

Regarding this error message in the logs that you posted

[Parsed_fps_0 @ 0x7fca54001840] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.
[vost#0:0/libwebp_anim @ 0x56103e7102c0] Encoder thread received EOF
[libwebp encoder @ 0x56103e712580] WebPAnimEncoderAssemble() failed with error: 1
[vost#0:0/libwebp_anim @ 0x56103e7102c0] Error submitting video frame to the encoder
[vost#0:0/libwebp_anim @ 0x56103e7102c0] Error flushing encoder: Cannot allocate memory
[vost#0:0/libwebp_anim @ 0x56103e7102c0] Task finished with error code: -12 (Cannot allocate memory)
...
Error: ffmpeg exited with code 244: Conversion failed!

The misleading "Cannot allocate memory" indicates a known issue https://github.com/immich-app/immich/issues/16154#issuecomment-3262200486:

For thumbnail generation Immich instructs ffmpeg to extract only I-frames. When a video has no I-frames at all (not compliant with H.264), ffmpeg fails with a misleading "Cannot allocate memory" error.
Affected videos: live photos / motion photos. These videos are short, so there is higher chance that when they are cut/created by phone software, there will be no I-frames left inside.


Regarding the samples.
Both samples from gdrive IMG_2738.MOV and IMG_2763.MOV generate thumbnails successfully on my test Immich v2.2.3 on Mac M1. Could you double check the "bad" sample?

Image
@skatsubo commented on GitHub (Nov 14, 2025): Thanks for providing detailed info. Regarding this error message in the logs that you posted ``` [Parsed_fps_0 @ 0x7fca54001840] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated. [vost#0:0/libwebp_anim @ 0x56103e7102c0] Encoder thread received EOF [libwebp encoder @ 0x56103e712580] WebPAnimEncoderAssemble() failed with error: 1 [vost#0:0/libwebp_anim @ 0x56103e7102c0] Error submitting video frame to the encoder [vost#0:0/libwebp_anim @ 0x56103e7102c0] Error flushing encoder: Cannot allocate memory [vost#0:0/libwebp_anim @ 0x56103e7102c0] Task finished with error code: -12 (Cannot allocate memory) ... Error: ffmpeg exited with code 244: Conversion failed! ``` The misleading "Cannot allocate memory" indicates a known issue https://github.com/immich-app/immich/issues/16154#issuecomment-3262200486: > For thumbnail generation Immich instructs ffmpeg to extract only I-frames. When a video has no I-frames at all (not compliant with H.264), ffmpeg fails with a misleading "Cannot allocate memory" error. > Affected videos: live photos / motion photos. These videos are short, so there is higher chance that when they are cut/created by phone software, there will be no I-frames left inside. --- Regarding the samples. Both samples from gdrive IMG_2738.MOV and IMG_2763.MOV generate thumbnails successfully on my test Immich v2.2.3 on Mac M1. Could you double check the "bad" sample? <img width="268" height="245" alt="Image" src="https://github.com/user-attachments/assets/dccf5aee-1204-4d1e-acec-f44e61ac85ba" />
Author
Owner

@ryny24 commented on GitHub (Feb 18, 2026):

Did you have any resolution to this issue? I'm seeing the same error in my logs since the last update (v2.5.6).

[Nest] 6  - 02/18/2026, 9:53:46 AM   ERROR [Microservices:{"source":"upload","id":"e53167e6-567d-4316-b74a-37e5eeecbc6d"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed!

Error: ffmpeg exited with code 244: Conversion failed!
@ryny24 commented on GitHub (Feb 18, 2026): Did you have any resolution to this issue? I'm seeing the same error in my logs since the last update (v2.5.6). ``` [Nest] 6 - 02/18/2026, 9:53:46 AM ERROR [Microservices:{"source":"upload","id":"e53167e6-567d-4316-b74a-37e5eeecbc6d"}] Unable to run job handler (AssetGenerateThumbnails): Error: ffmpeg exited with code 244: Conversion failed! Error: ffmpeg exited with code 244: Conversion failed! ```
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#7051
No description provided.