sgl-project/sglang · error · ValueError
MiniMax H3 text encode produced no native payload
Error message
MiniMax H3 text encode produced no native payload
What it means
In grouped (DP) text encoding, after the owner rank runs the encode, the result's extra[MINIMAX_H3_TEXT_EMBEDDINGS_EXTRA_KEY] must be a dict payload. This ValueError means the owner's encode completed without producing the native payload — the text embeddings were never published into extra.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/stages/text_encoding.py:168
owner_exception = None
owner_error = None
payload = None
if dp_group.rank_in_group == owner:
try:
first_batch.extra[_MINIMAX_H3_SINGLE_COPY_TEXT_ENCODE_EXTRA_KEY] = (
True
)
try:
first_result = self(first_batch, server_args)
finally:
first_batch.extra.pop(
_MINIMAX_H3_SINGLE_COPY_TEXT_ENCODE_EXTRA_KEY, None
)
payload = first_result.extra.get(
MINIMAX_H3_TEXT_EMBEDDINGS_EXTRA_KEY
)
if not isinstance(payload, dict):
raise ValueError(
"MiniMax H3 text encode produced no native payload"
)
except Exception as exc:
owner_exception = exc
owner_error = f"{type(exc).__name__}: {exc}"
owner_error = dp_group.broadcast_object(owner_error, src=owner)
if owner_error is not None:
if owner_exception is not None:
raise owner_exception
raise RuntimeError(
f"MiniMax H3 text encode failed on rank {owner}: {owner_error}"
)
payload = dp_group.broadcast_tensor_dict(payload, src=owner)
if not isinstance(payload, dict):
raise RuntimeError("MiniMax H3 text payload broadcast failed")
if dp_group.rank_in_group != owner:View on GitHub (pinned to 0132848349)
Solutions
- Check the owner-rank encoder logs for the underlying reason it published no payload
- Verify the MiniMaxH3Qwen3VLEncoder/text_encoder component is the correct one and actually encodes for this task
- Reproduce with run_grouped_requests disabled (single-rank path) to see the raw encoder behavior
Defensive patterns
Strategy: try-catch
Validate before calling
if not isinstance(batch.extra.get(MINIMAX_H3_TEXT_EMBEDDINGS_EXTRA_KEY), dict):
raise RuntimeError("encoder produced no payload; run single-rank to debug") Type guard
def has_text_payload(batch) -> bool:
return isinstance(batch.extra.get(MINIMAX_H3_TEXT_EMBEDDINGS_EXTRA_KEY), dict) Try / catch
try:
stage.run_grouped_requests(batches)
except ValueError as e:
if "no native payload" in str(e):
debug_owner_rank_encoder()
else:
raise Prevention
- Smoke-test the encoder single-rank before enabling DP grouping
- Fail fast if the encoder returns without publishing embeddings
When it happens
Trigger: run_grouped_requests executes the encode on the owner rank, then first_result.extra.get(MINIMAX_H3_TEXT_EMBEDDINGS_EXTRA_KEY) is not a dict — because the encode path returned early (e.g. plan already had embeddings key removed) or the underlying encoder produced nothing.
Common situations: A text encoder component that silently returns without publishing embeddings, a misconfigured pipeline where text encoding is a no-op, or an exception path in the encoder swallowed before payload check.
Related errors
- MiniMax H3 text encode failed on rank {owner}: {owner_error}
- MiniMax H3 text payload must contain positive.hidden_states
- prompt must be non-empty
- MiniMax H3 text payload positive.text_len must match the hid
- MiniMaxH3TextEncodingStage direct encode requires a text_enc
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/14a7ef873d9fff0b.
Report an issue: GitHub.