sgl-project/sglang · error · ValueError
MiniMaxH3TextEncodingStage requires the pipeline processor c
Error message
MiniMaxH3TextEncodingStage requires the pipeline processor component (model_index.json: processor)
What it means
MiniMaxH3TextEncodingStage's constructor requires the pipeline's 'processor' component (declared in model_index.json) because it drives the Qwen3VL image processor during direct encode. If the loaded pipeline lacks that component, init fails immediately with this ValueError.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/text_encoding.py:42
logger = init_logger(__name__)
_MINIMAX_H3_SINGLE_COPY_TEXT_ENCODE_EXTRA_KEY = "minimax_h3_single_copy_text_encode"
class MiniMaxH3TextEncodingStage(TextEncodingStage):
deduplicated_output_fields = ("prompt_embeds", "prompt_seq_lens")
deduplicated_extra_output_keys = (MINIMAX_H3_TEXT_EMBEDDINGS_EXTRA_KEY,)
def __init__(self, text_encoder, tokenizer, processor) -> None:
super().__init__(
text_encoders=[text_encoder],
tokenizers=[tokenizer],
)
self.text_encoder = text_encoder
self.tokenizer = tokenizer
if processor is None:
raise ValueError(
"MiniMaxH3TextEncodingStage requires the pipeline processor "
"component (model_index.json: processor)"
)
self.processor = processor
@torch.no_grad()
def forward(self, batch: Req, server_args: ServerArgs) -> Req:
from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.resolved_plan import (
minimax_h3_plan_from_batch,
)
plan = minimax_h3_plan_from_batch(batch)
if plan is not None:
try:
self._encode_from_plan(
batch,
plan,
include_video_token_mask=(View on GitHub (pinned to 0132848349)
Solutions
- Verify model_index.json contains a 'processor' entry and its subfolder exists in the snapshot
- Re-download / repair the pipeline snapshot (hf snapshot download or cache clear) before loading
- If constructing programmatically, pass the processor component explicitly
Defensive patterns
Strategy: validation
Validate before calling
components = json.load(open(snapshot / "model_index.json"))
assert "processor" in {k for k, v in components.items() if isinstance(v, (str, tuple))}, "snapshot missing processor" Prevention
- Validate model_index.json components before constructing stages
- Repair partial HF snapshots before loading the pipeline
When it happens
Trigger: Instantiating MiniMaxH3TextEncodingStage from a pipeline whose model_index.json has no processor entry, so the components lookup passes processor=None into __init__.
Common situations: Loading a partial/partially-downloaded MiniMax H3 pipeline snapshot, a hand-built pipeline dict missing the processor, or a model_index.json from an incompatible pipeline revision.
Related errors
- task {task!r} is not served by MiniMax H3 partition {self.pa
- {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
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/6df634fd044c55d3.
Report an issue: GitHub.