media-proxy: default memory budget (192MB) can never satisfy AV metadata flat fee (256MB)

(#3875) Bug Closed: Fixed desktop media self-hosting video

Reproduction steps

  1. On a stock self-hosted instance (media-proxy default 512mb limit), upload any mp4/webm/mkv (e.g. an 872KB mp4)
  2. Send it in a channel
  3. Observe it renders download-only, no inline player; check media-proxy logs

Expected behaviour

Video gets metadata + poster transform and plays inline, like stills do and like fluxer.app does.

Actual behaviour

POST /_metadata -> 400 metadata_extraction_failed "invalid image dimensions"; GET ...?format=webp -> 400 video_transform_failed. Log shows native work refused, larger than the memory budget (bytes=269329282, capacity=201326592): every AV job is charged file + 256MB flat fee against a 192MB budget computed from stock defaults, so it can never pass. Direct file 206s work, hence download/fullscreen fine.

Build information

Canary Web 2026.1010.212805, Linux (x86), Chrome 154.0.0.0, Locale en-US, instance fluxer-media-proxy:v1 875e357cd9c3 (1011.938, includes #3385)

Platform

Web, Self-hosting

Evidence

media-proxy-1 | {"timestamp":"2026-10-11T10:18:57.753224Z","level":"WARN","fields":{"message":"request rejected","req":"MDBMDACPFH7J","kind":"attachment","method":"GET","path":"/attachments/1519614555695611907/1558782282318217216/polo2.mp4","query":"format=webp","status":400,"duration_ms":2,"fetch_ms":0,"transform_ms":0,"nsfw_ms":0,"reason":"video_transform_failed","source":"\"fmt=webp w=None h=None q=high\""},"target":"fluxer_media_proxy::request_log"} media-proxy-1 | {"timestamp":"2026-10-11T10:20:17.600614Z","level":"WARN","fields":{"message":"native work refused, larger than the memory budget","bytes":269329282,"capacity":201326592},"target":"fluxer_media_proxy::server::native_task_executor","span":{"path":"/_metadata","req":"0ZDZ5A6WC6Q5","name":"request"},"spans":[{"path":"/_metadata","req":"0ZDZ5A6WC6Q5","name":"request"}]} media-proxy-1 | {"timestamp":"2026-10-11T10:20:17.600677Z","level":"WARN","fields":{"message":"request rejected","req":"0ZDZ5A6WC6Q5","kind":"metadata","method":"POST","path":"/_metadata","query":"","status":400,"duration_ms":2,"fetch_ms":0,"transform_ms":0,"nsfw_ms":0,"reason":"metadata_extraction_failed","source":"\"filename=best_joke_ever_SmGCYMQu73Q.mp4 err=invalid image dimensions\""},"target":"fluxer_media_proxy::request_log"} Chaning the FLUXER_MEDIA_PROXY_MEMORY_LIMIT to 2GB in the .env file temporarily solves the issue
  1. Hampus changed the status from Needs triage to Awaiting confirmation
  2. defaultuser0 changed the status from Awaiting confirmation to Fixed
  1. The pull request fluxer#3392 mentions this post Merged

4 comments

Sign in with Fluxer to comment and vote.
Comment by Rex
RexSystem 1 vote
Official response
Shipped in media-proxy 2026.1011.121705.
Comment by Hampus
HampusStaff 1 vote
Fixed on latest. Pull and restart the media proxy and you can drop the FLUXER_MEDIA_PROXY_MEMORY_LIMIT=2gb workaround. Videos that were uploaded while it was broken may stay download-only, because their metadata was stored without a poster. Re-uploading fixes those.