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
- 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
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
- Strip PD/disagg flags from launch templates for unsupported pipelines
- Maintain a per-pipeline capability matrix in your serving configs
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
- Pi05Pipeline v1 supports same-process execution only. Use pr
- MiniMax H3 requires ffmpeg and ffprobe for media processing
- MiniMax H3 model variant must be a non-empty string
- unsupported MiniMax H3 model variant {variant!r}; supported:
- MiniMax H3 --model-variant and --model-subfolder select diff
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/2e49b852548431ed.
Report an issue: GitHub.