{"record":{"id":"8097561207352271","repo":"sgl-project/sglang","slug":"unsupported-minimax-h3-decoder-task-task-value-r","errorCode":null,"errorMessage":"unsupported MiniMax H3 decoder task {task_value!r}","messagePattern":"unsupported MiniMax H3 decoder task (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/decoding.py","lineNumber":251,"sourceCode":"    if not isinstance(extra, Mapping):\n        return None\n    canonical = extra.get(_MINIMAX_H3_CANONICAL_REQUEST_EXTRA_KEY)\n    if canonical is not None and not isinstance(canonical, Mapping):\n        raise ValueError(\"minimax_h3_canonical_request must be a mapping\")\n    canonical_task = canonical.get(\"task\") if isinstance(canonical, Mapping) else None\n    resolved = extra.get(_MINIMAX_H3_RESOLVED_PLAN_EXTRA_KEY)\n    resolved_task = getattr(resolved, \"task\", None) if resolved is not None else None\n    if canonical_task is not None and resolved_task is not None:\n        if str(canonical_task) != str(resolved_task):\n            raise ValueError(\n                \"MiniMax H3 decoder task mismatch between canonical request and \"\n                \"resolved plan\"\n            )\n    task_value = resolved_task if resolved_task is not None else canonical_task\n    if task_value is None:\n        return None\n    if not isinstance(task_value, str) or task_value not in _MINIMAX_H3_DECODER_TASKS:\n        raise ValueError(f\"unsupported MiniMax H3 decoder task {task_value!r}\")\n    return task_value\n\n\nclass MiniMaxH3DecodingStage(DecodingStage):\n    def __init__(self, video_vae, audio_vae) -> None:\n        super().__init__(vae=video_vae, component_name=\"video_vae\")\n        self.video_vae = video_vae\n        self.audio_vae = audio_vae\n        self._compiled_audio_vae_decode = ActiveTargetCompiledCallable()\n\n    @property\n    def role_affinity(self) -> RoleType:\n        return RoleType.DECODER\n\n    @property\n    def parallelism_type(self) -> StageParallelismType:\n        # Every decode-group rank owns a subset of visual VAE tiles. The GPU\n        # worker only materializes/saves the final OutputBatch on world rank 0.","sourceCodeStart":233,"sourceCodeEnd":269,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/decoding.py#L233-L269","documentation":"_minimax_h3_decoder_task resolves the task from the resolved plan or canonical request and requires it to be a string in the _MINIMAX_H3_DECODER_TASKS set. Any non-string or unknown task raises ValueError.","triggerScenarios":"Passing task values like 't2v', 'i2a', an enum, or None-but-not-really (e.g. a dict) via the resolved plan or canonical request when the MiniMaxH3DecodingStage runs.","commonSituations":"Typos or renamed task identifiers after upgrading the model package; constructing canonical requests with task ids from a different model family.","solutions":["Set task to one of the supported MiniMax H3 decoder tasks (check _MINIMAX_H3_DECODER_TASKS in decoding.py)","Ensure task is a plain string, not an enum/other type","Regenerate the plan through minimax_h3_resolve_plan so the task is normalized"],"exampleFix":"# before\ncanonical[\"task\"] = \"text2video\"\n# after\ncanonical[\"task\"] = \"t2v\"  # or another entry in _MINIMAX_H3_DECODER_TASKS","handlingStrategy":"type-guard","validationCode":"from ...decoding import _MINIMAX_H3_DECODER_TASKS\nassert canonical[\"task\"] in _MINIMAX_H3_DECODER_TASKS","typeGuard":"def is_decoder_task(t) -> bool:\n    return isinstance(t, str) and t in _MINIMAX_H3_DECODER_TASKS","tryCatchPattern":null,"preventionTips":["Source task ids from the package's constant, not literals","Always route requests through minimax_h3_resolve_plan"],"tags":["minimax-h3","task","enum-value-invalid"],"backgroundTag":"enum-value-invalid","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}