Edit history

media-proxy: default memory budget (192MB) can never satisfy AV metadata flat fee (256MB) has not been edited, so there are no earlier versions.

Current version | Original by defaultuser0
Show

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

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