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

  1. Remove the video/video_audio condition or replace it with an image or audio reference
  2. Switch to a task profile that declares video_reference_supported if one exists in your version
  3. 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

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


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/05121623d4ab807c. Report an issue: GitHub.