{"record":{"id":"5122cdccc6b149e6","repo":"sgl-project/sglang","slug":"task-is-required-for-minimax-h3-supported-tasks","errorCode":null,"errorMessage":"task is required for MiniMax H3; supported tasks: fl2va, ref2va, t2va","messagePattern":"task is required for MiniMax H3; supported tasks: fl2va, ref2va, t2va","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/video_adapter.py","lineNumber":72,"sourceCode":"    strict_file_delivery = True\n    model_specific_fields = frozenset(\n        {\n            \"task\",\n            \"conditions\",\n            \"target\",\n            \"audio_flow_shift\",\n            \"audio_guidance_scale\",\n            \"quality\",\n            \"output_mode\",\n            \"imgvid_cond_noise_aug_for_inference\",\n            \"audio_cond_noise_aug_for_inference\",\n        }\n    )\n    supported_tasks = frozenset({\"t2va\", \"fl2va\", \"ref2va\"})\n\n    def validate_task_gate(self, task: Any, *, provided: bool) -> None:\n        if not provided or task is None:\n            raise ValueError(\n                \"task is required for MiniMax H3; supported tasks: \"\n                \"fl2va, ref2va, t2va\"\n            )\n        if not isinstance(task, str):\n            raise ValueError(\"task must be a non-empty string for MiniMax H3\")\n        if not task.strip():\n            raise ValueError(\"task must be a non-empty string for MiniMax H3\")\n        if task not in self.supported_tasks:\n            raise ValueError(\n                f\"unsupported MiniMax H3 task {task!r}; supported tasks: \"\n                \"fl2va, ref2va, t2va\"\n            )\n\n    @staticmethod\n    def _positive_finite_extra(\n        request: VideoGenerationsRequest,\n        name: str,\n    ) -> float | None:","sourceCodeStart":54,"sourceCodeEnd":90,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/video_adapter.py#L54-L90","documentation":"The MiniMax H3 video adapter requires an explicit task on every request; supported tasks are t2va, fl2va, ref2va. validate_task_gate is the first check run by validate_transport_options and validate_sampling_params, and it rejects requests where the task was not provided at all or is None.","triggerScenarios":"Submitting a generation request without the task parameter (provided=False), or with task=None; also when the transport layer drops the task field before validation runs.","commonSituations":"Clients omitting task assuming a default like t2v; a proxy/gateway stripping unknown fields including 'task'; SDK version mismatch where the task field moved to a different key (e.g. 'mode').","solutions":["Always pass an explicit task string: 't2va', 'fl2va', or 'ref2va'","Verify your transport layer forwards the task field intact","Upgrade the client SDK to the version matching the server's expected request schema"],"exampleFix":"# before\nresponse = client.generate(prompt=\"a cat\", task=None)\n\n# after\nresponse = client.generate(prompt=\"a cat\", task=\"t2va\")","handlingStrategy":"validation","validationCode":"task = request.get(\"task\")\nif task is None:\n    raise ValueError(\"task is required; use t2va, fl2va, or ref2va\")\nadapter.validate_task_gate(task, provided=task is not None)","typeGuard":"def has_task(request: dict) -> bool:\n    return request.get(\"task\") is not None","tryCatchPattern":"catch ValueError from validate_sampling_params/validate_transport_options and map 'task is required' to a 400 response naming the supported tasks","preventionTips":["Make 'task' a required request field in client SDKs","Add a smoke test that every request path sets task explicitly"],"tags":["minimax-h3","task-validation","missing-parameter","video-adapter"],"backgroundTag":"missing-required-parameter","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}