sgl-project/sglang · error · RuntimeError
ffprobe failed for final MiniMax H3 output{suffix}
Error message
ffprobe failed for final MiniMax H3 output{suffix} What it means
ffprobe was found and ran but exited non-zero while probing the final MiniMax H3 output (subprocess.CalledProcessError). The stderr detail is appended to the message. Usually means the output file is corrupt, truncated, or not valid media — not an environment problem.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/video_adapter.py:393
str(path),
],
check=True,
capture_output=True,
text=True,
timeout=30,
)
except subprocess.TimeoutExpired as exc:
raise RuntimeError(
"MiniMax H3 final output ffprobe timed out after 30 seconds"
) from exc
except FileNotFoundError as exc:
raise RuntimeError(
"ffprobe is required to validate final MiniMax H3 output"
) from exc
except subprocess.CalledProcessError as exc:
detail = (exc.stderr or "").strip()
suffix = f": {detail}" if detail else ""
raise RuntimeError(
f"ffprobe failed for final MiniMax H3 output{suffix}"
) from exc
try:
payload = json.loads(probe.stdout)
except (TypeError, ValueError) as exc:
raise RuntimeError(
"ffprobe returned invalid JSON for MiniMax H3 output"
) from exc
if not isinstance(payload, dict):
raise RuntimeError("ffprobe returned invalid JSON for MiniMax H3 output")
streams = payload.get("streams") or []
if not isinstance(streams, list):
raise RuntimeError("ffprobe returned invalid stream metadata")
video_streams = [
stream
for stream in streams
if isinstance(stream, dict) and stream.get("codec_type") == "video"View on GitHub (pinned to 0132848349)
Solutions
- Inspect the appended stderr detail to identify the exact ffprobe complaint
- Check disk space and rerun `ffprobe <file>` manually on the output
- Retry the generation request; truncated muxes are usually transient
- If persistent, investigate the decoding/muxing stage writing the MP4
Defensive patterns
Strategy: try-catch
Validate before calling
import subprocess subprocess.run(["ffprobe", "-v", "error", path], check=True, capture_output=True) # pre-flight the file
Try / catch
try:
fields = adapter.validate_final_outputs_sync(paths, batch)
except RuntimeError as e:
if "ffprobe failed" in str(e):
log.error("corrupt output", exc_info=e)
paths = regenerate(prompt)
else:
raise Prevention
- Monitor disk space where outputs are written
- Pre-flight-probe generated files before feeding them to the adapter
When it happens
Trigger: Generation wrote an incomplete/corrupt MP4 (crash mid-mux, disk full), or the output_path points to a non-media file; ffprobe exits with an error and its stderr is surfaced.
Common situations: Disk exhaustion during generation; process killed mid-write; output_path accidentally pointing at a partial temp file.
Related errors
- ffprobe returned invalid JSON for MiniMax H3 output
- ffprobe returned invalid stream metadata
- MiniMax-H3 adaln_t_table must have shape [N, D] with N >= 2,
- MiniMax H3 AdaLN cache has invalid timestep plans
- TP size must be positive.
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/0a8b4e60b4185651.
Report an issue: GitHub.