{"record":{"id":"2e49b852548431ed","repo":"sgl-project/sglang","slug":"minimaxh3pipeline-only-supports-monolithic-deploym","errorCode":null,"errorMessage":"MiniMaxH3Pipeline only supports monolithic deployment; disaggregation role {role.value!r} is not supported","messagePattern":"MiniMaxH3Pipeline only supports monolithic deployment; disaggregation role (.+?) is not supported","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/pipelines/minimax_h3_pipeline.py","lineNumber":117,"sourceCode":"                    f\"{semantic_subfolder!r}, model_subfolder=\"\n                    f\"{explicit_subfolder!r}\"\n                )\n            self.server_args.model_subfolder = semantic_subfolder\n        model_index = super()._load_config()\n        self.release_metadata = MiniMaxH3ReleaseMetadata.from_model_index(model_index)\n        if (\n            model_variant is not None\n            and self.release_metadata.partition != model_variant.strip().lower()\n        ):\n            raise ValueError(\n                \"MiniMax H3 loaded checkpoint partition does not match \"\n                f\"--model-variant {model_variant!r}\"\n            )\n        return model_index\n\n    def validate_disagg_role(self, role: RoleType) -> None:\n        if role != RoleType.MONOLITHIC:\n            raise ValueError(\n                \"MiniMaxH3Pipeline only supports monolithic deployment; \"\n                f\"disaggregation role {role.value!r} is not supported\"\n            )\n\n    def create_pipeline_stages(self, server_args: ServerArgs) -> None:\n        # Per-model sigma override from model_index.json; contract tests\n        # construct the pipeline without model_path, hence the guard.\n        release_metadata = getattr(self, \"release_metadata\", None)\n        sigma_shift_scales = (\n            release_metadata.sigma_shift_scales\n            if release_metadata is not None\n            else None\n        )\n        self.add_stage(InputValidationStage())\n        if release_metadata is not None:\n            self.add_stage(MiniMaxH3PartitionAdmissionStage(release_metadata))\n        self.add_stage(\n            MiniMaxH3TextEncodingStage(","sourceCodeStart":99,"sourceCodeEnd":135,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/pipelines/minimax_h3_pipeline.py#L99-L135","documentation":"Raised by MiniMaxH3Pipeline.validate_disagg_role for any disaggregation role other than RoleType.MONOLITHIC. The MiniMax H3 pipeline (media processing plus validated output delivery) has no prefill/decode split support yet, so attempting to register it in a disaggregated deployment is rejected.","triggerScenarios":"Launching the server with disaggregated-prefill/decode roles (e.g. --disaggregation-role prefill or decode) while the pipeline is MiniMaxH3Pipeline; orchestrators that auto-assign roles to all workers in a PD cluster pick this up immediately at validation.","commonSituations":"Reusing a PD cluster's launch config for a new multimodal model; Helm charts that always set a disagg role; migrating from a pipeline that supported disaggregation.","solutions":["Run MiniMax H3 in monolithic mode: no disaggregation role (RoleType.MONOLITHIC) on a single serving group","Remove --disaggregation-role / PD router settings for this model from your launch config","If PD is a hard requirement, use a pipeline that supports it or wait for MiniMax H3 PD support"],"exampleFix":"# before\n--disaggregation-role prefill --model minimax-h3\n\n# after\n--model minimax-h3   # monolithic, no disaggregation role","handlingStrategy":"validation","validationCode":"from sglang.srt.disagg_role import RoleType  # adjust import to your layout\nif role != RoleType.MONOLITHIC:\n    raise SystemExit('MiniMax H3 must run monolithically; unset disaggregation role')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Strip PD/disagg flags from launch templates for unsupported pipelines","Maintain a per-pipeline capability matrix in your serving configs"],"tags":["minimax-h3","disaggregation","monolithic-only","sglang"],"backgroundTag":"unsupported-deployment-mode","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}