Bound concurrent ffmpeg to prevent OOM under upload bursts

FixConversionService
Shipped
July 9, 2026 at 8:57 PM UTC
Author
Kamo
Commit
7e70a8a

A multi-file upload fires all files at once; each ffmpeg decode allocates the full uncompressed frame, so N concurrent large images blew past the pod's memory limit and OOMKilled ConversionService (exit 137) — SecurityService then saw "header parser received no bytes" and every upload failed. Gate the ffmpeg decode/encode behind a Semaphore(2) so peak memory is bounded regardless of how many uploads arrive at once.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing