sgl-project/sglang · error · ValueError

MiniMaxH3Pipeline only supports monolithic deployment; disag

Error message

MiniMaxH3Pipeline only supports monolithic deployment; disaggregation role {role.value!r} is not supported

What it means

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.

Source

Thrown at python/sglang/multimodal_gen/runtime/pipelines/minimax_h3_pipeline.py:117

                    f"{semantic_subfolder!r}, model_subfolder="
                    f"{explicit_subfolder!r}"
                )
            self.server_args.model_subfolder = semantic_subfolder
        model_index = super()._load_config()
        self.release_metadata = MiniMaxH3ReleaseMetadata.from_model_index(model_index)
        if (
            model_variant is not None
            and self.release_metadata.partition != model_variant.strip().lower()
        ):
            raise ValueError(
                "MiniMax H3 loaded checkpoint partition does not match "
                f"--model-variant {model_variant!r}"
            )
        return model_index

    def validate_disagg_role(self, role: RoleType) -> None:
        if role != RoleType.MONOLITHIC:
            raise ValueError(
                "MiniMaxH3Pipeline only supports monolithic deployment; "
                f"disaggregation role {role.value!r} is not supported"
            )

    def create_pipeline_stages(self, server_args: ServerArgs) -> None:
        # Per-model sigma override from model_index.json; contract tests
        # construct the pipeline without model_path, hence the guard.
        release_metadata = getattr(self, "release_metadata", None)
        sigma_shift_scales = (
            release_metadata.sigma_shift_scales
            if release_metadata is not None
            else None
        )
        self.add_stage(InputValidationStage())
        if release_metadata is not None:
            self.add_stage(MiniMaxH3PartitionAdmissionStage(release_metadata))
        self.add_stage(
            MiniMaxH3TextEncodingStage(

View on GitHub (pinned to 0132848349)

Solutions

  1. Run MiniMax H3 in monolithic mode: no disaggregation role (RoleType.MONOLITHIC) on a single serving group
  2. Remove --disaggregation-role / PD router settings for this model from your launch config
  3. If PD is a hard requirement, use a pipeline that supports it or wait for MiniMax H3 PD support

Example fix

# before
--disaggregation-role prefill --model minimax-h3

# after
--model minimax-h3   # monolithic, no disaggregation role
Defensive patterns

Strategy: validation

Validate before calling

from sglang.srt.disagg_role import RoleType  # adjust import to your layout
if role != RoleType.MONOLITHIC:
    raise SystemExit('MiniMax H3 must run monolithically; unset disaggregation role')

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


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