{"record":{"id":"568f0451c598ed3d","repo":"sgl-project/sglang","slug":"minimax-h3-audio-material-has-no-audio-stream","errorCode":null,"errorMessage":"MiniMax H3 audio material has no audio stream","messagePattern":"MiniMax H3 audio material has no audio stream","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/material_io.py","lineNumber":426,"sourceCode":"        \"m4a\",\n        \"3gp\",\n        \"3g2\",\n        \"mj2\",\n        \"matroska\",\n        \"webm\",\n        \"wav\",\n        \"mp3\",\n        \"flac\",\n        \"ogg\",\n    }\n    if not format_names or not format_names.issubset(allowed_formats):\n        raise ValueError(\"MiniMax H3 media container format is not allowed\")\n    video_streams = [s for s in streams if s.get(\"codec_type\") == \"video\"]\n    audio_streams = [s for s in streams if s.get(\"codec_type\") == \"audio\"]\n    if condition_type in {\"video\", \"video_audio\"} and not video_streams:\n        raise ValueError(\"MiniMax H3 video material has no video stream\")\n    if condition_type in {\"audio\", \"video_audio\"} and not audio_streams:\n        raise ValueError(\"MiniMax H3 audio material has no audio stream\")\n\n    primary_video: dict[str, Any] | None = None\n    for stream in video_streams:\n        try:\n            width = int(stream.get(\"width\") or 0)\n            height = int(stream.get(\"height\") or 0)\n        except (TypeError, ValueError) as exc:\n            raise ValueError(\n                \"MiniMax H3 video material has invalid dimensions\"\n            ) from exc\n        if width <= 0 or height <= 0:\n            raise ValueError(\"MiniMax H3 video material has no positive dimensions\")\n        fps = _parse_frame_rate(stream.get(\"avg_frame_rate\")) or _parse_frame_rate(\n            stream.get(\"r_frame_rate\")\n        )\n        if fps <= 0:\n            raise ValueError(\"MiniMax H3 video material has no usable frame rate\")\n        if primary_video is None:","sourceCodeStart":408,"sourceCodeEnd":444,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/material_io.py#L408-L444","documentation":"For condition_type audio or video_audio, ffprobe found no stream with codec_type == 'audio'. At least one audio stream is mandatory for these condition types.","triggerScenarios":"A silent/muted video re-muxed without an audio track but labeled 'video_audio', or a data file labeled 'audio'.","commonSituations":"Muted screen recordings, video stripped of audio during transcoding (-an flag), or wrong condition_type in the request.","solutions":["Set condition_type to 'video' if no audio is intended","Add a silent audio track: ffmpeg -i in.mp4 -f lavfi -i anullsrc -shortest -c:v copy out.mp4","Verify with ffprobe that an audio stream exists"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"has_audio = any(s.get(\"codec_type\") == \"audio\" for s in streams)\nassert condition_type not in {\"audio\", \"video_audio\"} or has_audio","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Probe streams and choose condition_type accordingly","Add silent audio track if audio is required"],"tags":["minimax-h3","audio-stream","ffprobe"],"backgroundTag":"missing-media-stream","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}