sgl-project/sglang · critical · ValueError
task {task!r} is not served by MiniMax H3 partition {self.pa
Error message
task {task!r} is not served by MiniMax H3 partition {self.partition!r}; supported tasks: {list(self.tasks)!r} What it means
from_model_index validates a loaded partition's declared task list: every task must belong to the declared partition (fl2va or ref2va) and aliases must resolve via canonical_minimax_h3_task. A task listed in model_index.json that doesn't map to the partition fails config load.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/release_metadata.py:113
partition=partition,
tasks=tasks,
task_aliases=dict(aliases),
video_sigma_shift=video_sigma,
audio_sigma_shift=audio_sigma,
)
for task in metadata.tasks:
if canonical_minimax_h3_task(task) != task:
raise ValueError(
f"tasks must contain canonical task names, got {task!r}"
)
if partition_for_task(task) != partition:
raise ValueError(
f"task {task!r} does not belong to partition {partition!r}"
)
for alias, target in metadata.task_aliases.items():
if target not in metadata.tasks:
raise ValueError(
f"task alias {alias!r} targets undeclared task {target!r}"
)
if canonical_minimax_h3_task(alias) != target:
raise ValueError(
f"unsupported task alias mapping {alias!r} -> {target!r}"
)
return metadata
@property
def sigma_shift_scales(self) -> dict[str, float]:
return {"video": self.video_sigma_shift, "audio": self.audio_sigma_shift}
def canonical_task(self, task: str) -> str:
normalized = task.strip().lower()
canonical = self.task_aliases.get(normalized, normalized)
if canonical not in self.tasks:
raise ValueError(
f"task {task!r} is not served by MiniMax H3 partition {self.partition!r}; "
f"supported tasks: {list(self.tasks)!r}"View on GitHub (pinned to 0132848349)
Solutions
- Check _minimax_h3.tasks in model_index.json and remove/fix entries that don't belong to the partition
- Regenerate model_index.json from the official release tooling
- Compare against a known-good release of the same partition
Example fix
// before
"_minimax_h3": {"partition": "ref2va", "tasks": ["t2v", "image_gen"]}
// after
"_minimax_h3": {"partition": "ref2va", "tasks": ["ref2v"]} // tasks valid for ref2va Defensive patterns
Strategy: try-catch
Try / catch
try:
MiniMaxH3ReleaseMetadata.from_model_index(idx)
except ValueError as e:
raise ConfigError(f"bad model_index.json: {e}") from e Prevention
- Validate model_index.json at packaging time, not at serving time
- Never hand-merge task lists across partitions
When it happens
Trigger: model_index.json's _minimax_h3.tasks containing a task name that belongs to the other partition, or a typo'd task string; raised while loading weights/config (_load_config).
Common situations: Hand-edited or merged model_index.json, a fine-tune exported with wrong task tags, or a version change renaming tasks.
Related errors
- {path} must be a non-empty list
- {path} must contain non-empty strings
- {path} must not contain duplicates
- model_index.json._minimax_h3 must be an object
- model_index.json._minimax_h3.partition must be one of fl2va,
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/0aa9d62986585aed.
Report an issue: GitHub.