sgl-project/sglang · error · ValueError
conditions[{index}]: video references are not supported in v
Error message
conditions[{index}]: video references are not supported in v1 for task {profile.task!r} (image/audio only) What it means
In v1 of the MiniMax-H3 pipeline, the requested task's profile does not support video (or video_audio) reference conditions — only image and audio. The validator scans normalized conditions and rejects any video-typed entry when profile.video_reference_supported is false.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/request_validation.py:331
conditions,
profile=profile,
frame_count=requested_frame_count,
)
if profile.task == MINIMAX_H3_TASK_FL2VA:
_validate_keyframe_conditions(normalized_conditions, task=profile.task)
elif profile.task == MINIMAX_H3_TASK_REF2VA and any(
condition["role"] == MINIMAX_H3_CONDITION_ROLE_KEYFRAME
for condition in normalized_conditions
):
_validate_keyframe_conditions(normalized_conditions, task=profile.task)
# ref2va accepts ordered reference streams and, for hybrid checkpoints,
# one first/last keyframe signature. Type admission is handled by the task
# profile; temporal ambiguity is validated later when target duration is
# omitted.
if not profile.video_reference_supported:
for index, cond in enumerate(normalized_conditions):
if cond["type"] in ("video", "video_audio"):
raise ValueError(
f"conditions[{index}]: video references are not supported "
f"in v1 for task {profile.task!r} (image/audio only)"
)
if normalized_target.get("duration_seconds") is None:
# Only reachable for duration_from_audio_reference profiles.
duration_sources = [
cond
for cond in normalized_conditions
if cond["type"] in ("audio", "video", "video_audio")
]
if not duration_sources:
raise ValueError(
"target.duration_seconds is required, or exactly one "
"audio reference to derive duration from (including "
f"video/video_audio soundtracks; task {profile.task!r})"
)
if len(duration_sources) > 1:
raise ValueError(View on GitHub (pinned to 0132848349)
Solutions
- Remove the video/video_audio condition or replace it with an image or audio reference
- Switch to a task profile that declares video_reference_supported if one exists in your version
- Check the task profile table to confirm which inputs each task accepts
Example fix
// before
{"task":"...","conditions":[{"role":"reference","type":"video","uri":"clip.mp4"}]}
// after
{"task":"...","conditions":[{"role":"reference","type":"image","uri":"frame.jpg"}]} Defensive patterns
Strategy: validation
Validate before calling
def no_video_refs(task_profile, conditions):
if task_profile.video_reference_supported: return True
return all(c.get("type") not in ("video", "video_audio") for c in conditions) Type guard
null
Try / catch
null
Prevention
- Check the task profile's video_reference_supported flag before attaching video inputs
When it happens
Trigger: Calling minimax_h3_validate_canonical_request for a task whose profile has video_reference_supported=False while conditions[] contains an entry with type 'video' or 'video_audio'.
Common situations: Feeding a reference video clip to an image/audio-only task; assuming all tasks accept video because video output is supported; version upgrade where video input was dropped for v1.
Related errors
- pixel_values_videos and video_grid_thw must be given togethe
- MiniMax H3 request task must be a non-empty string
- MiniMax H3 requires num_inference_steps >= 2 because its vid
- quality must be one of {list(QUALITY_LEVELS)}, got {quality!
- {path} must be a non-empty string
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/05121623d4ab807c.
Report an issue: GitHub.