{"record":{"id":"61436fb549bb944f","repo":"sgl-project/sglang","slug":"cpath-start-time-seconds-is-only-allowed-for-vid","errorCode":null,"errorMessage":"{cpath}.start_time_seconds is only allowed for video or video_audio references","messagePattern":"(.+?)\\.start_time_seconds is only allowed for video or video_audio references","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/request_validation.py","lineNumber":242,"sourceCode":"                )\n            if resolved in seen_frame_indices:\n                raise ValueError(\n                    f\"{cpath}.frame_index resolves to {resolved}, already \"\n                    f\"bound by conditions[{seen_frame_indices[resolved]}]\"\n                )\n            seen_frame_indices[resolved] = index\n            # Preserve the request-level semantic index.  In particular, -1 is\n            # the canonical last-frame sentinel; the resolved pixel frame is\n            # carried separately by MiniMaxH3ResolvedPlan.\n            entry[\"frame_index\"] = frame_index\n        elif cond.get(\"frame_index\") is not None:\n            raise ValueError(f\"{cpath}.frame_index is not allowed for role={role!r}\")\n        start_time_seconds = _optional_nonnegative_finite_float(\n            cond.get(\"start_time_seconds\"), f\"{cpath}.start_time_seconds\"\n        )\n        if start_time_seconds is not None:\n            if cond_type not in {\"video\", \"video_audio\"}:\n                raise ValueError(\n                    f\"{cpath}.start_time_seconds is only allowed for video \"\n                    \"or video_audio references\"\n                )\n            entry[\"start_time_seconds\"] = start_time_seconds\n        normalized.append(entry)\n    return normalized\n\n\ndef _validate_keyframe_conditions(\n    conditions: Sequence[Mapping[str, Any]], *, task: str\n) -> None:\n    \"\"\"Enforce the shared first/last-frame contract after schema validation.\"\"\"\n\n    keyframes = [\n        condition\n        for condition in conditions\n        if condition[\"role\"] == MINIMAX_H3_CONDITION_ROLE_KEYFRAME\n    ]","sourceCodeStart":224,"sourceCodeEnd":260,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/request_validation.py#L224-L260","documentation":"Raised by MiniMax-H3 request validation when a condition supplies `start_time_seconds` but its `type` is not 'video' or 'video_audio'. The field denotes a temporal offset into a video reference, so it is meaningless for image/audio-only conditions and the normalizer rejects it to keep the canonical request unambiguous.","triggerScenarios":"Calling minimax_h3_validate_canonical_request (directly or via build_request_extra) with a conditions[] entry that has start_time_seconds set while cond_type is 'image', 'audio', or any non-video type.","commonSituations":"Copy-pasting a video condition template and changing type to 'image' without removing start_time_seconds; or treating start_time_seconds as a generic scheduling timestamp for audio conditions.","solutions":["Remove start_time_seconds from image/audio conditions; it only applies to video/video_audio references","If you meant to seek into a video, set the condition type to 'video' or 'video_audio'","Re-run validation to confirm the canonical request builds"],"exampleFix":"// before\n{\"role\":\"reference\",\"type\":\"image\",\"uri\":\"...\",\"start_time_seconds\":2.0}\n// after\n{\"role\":\"reference\",\"type\":\"image\",\"uri\":\"...\"}","handlingStrategy":"validation","validationCode":"def ok(c):\n    if c.get(\"start_time_seconds\") is not None and c.get(\"type\") not in {\"video\",\"video_audio\"}:\n        return False\n    return True","typeGuard":"null","tryCatchPattern":"null","preventionTips":["Build conditions from typed helpers that only attach start_time_seconds for video types"],"tags":["minimax-h3","request-validation","video","conditions"],"backgroundTag":"request-schema-validation-failed","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}