sgl-project/sglang · error · ValueError
MiniMax H3 DiffGenerator requires save_output=True and a non
Error message
MiniMax H3 DiffGenerator requires save_output=True and a non-empty output_path for validated file delivery
What it means
MiniMax H3 generation in SGLang requires that outputs be persisted: the DiffGenerator path needs save_output=True and a non-empty output_path so it can return validated file paths (the only supported output_mode is decoded_files). Omitting either makes delivery impossible to validate.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/video_adapter.py:243
"""Apply the HTTP task/delivery gate to offline requests as well."""
task = getattr(sampling_params, "task", None)
self.validate_task_gate(task, provided=task is not None)
sampling_params.task = canonical_minimax_h3_task(task)
if getattr(sampling_params, "enable_frame_interpolation", False):
raise ValueError(
"MiniMax H3 does not support enable_frame_interpolation: the "
"accepted delivery contract is the canonical 24 fps output"
)
if getattr(sampling_params, "enable_upscaling", False):
raise ValueError(
"MiniMax H3 does not support enable_upscaling: the accepted "
"delivery contract is the resolved target canvas"
)
if not bool(getattr(sampling_params, "save_output", False)) or not getattr(
sampling_params, "output_path", None
):
raise ValueError(
"MiniMax H3 DiffGenerator requires save_output=True and a non-empty "
"output_path for validated file delivery"
)
output_mode = getattr(sampling_params, "output_mode", None)
if output_mode not in (None, "decoded_files"):
raise ValueError(
"MiniMax H3 SGLang backend only supports "
f"output_mode='decoded_files', got {output_mode!r}"
)
def prepare_for_queue_sync(self, batch: Req) -> None:
from sglang.multimodal_gen.runtime.pipelines_core.stages.model_specific_stages.minimax_h3.prequeue import (
minimax_h3_prepare_for_queue,
)
minimax_h3_prepare_for_queue(batch)
def cleanup_request_sync(self, batch: Req) -> None:View on GitHub (pinned to 0132848349)
Solutions
- Set sampling_params.save_output = True
- Set sampling_params.output_path to a writable file or directory path
- Verify the process has write permissions on that path
Example fix
// before sp = SamplingParams(temperature=0.7) // after sp = SamplingParams(temperature=0.7, save_output=True, output_path="/data/out.mp4")
Defensive patterns
Strategy: validation
Validate before calling
assert sp.save_output and sp.output_path, "set save_output=True and output_path" import os; assert os.access(os.path.dirname(sp.output_path) or ".", os.W_OK)
Prevention
- Always pass save_output/output_path for MiniMax H3 offline calls
- Pre-create the output directory
When it happens
Trigger: validate_sampling_params called on SamplingParams where save_output is falsy or output_path is None/empty, for a MiniMax H3 video model.
Common situations: Default SamplingParams (save_output defaults to False); reusing LLM-style params that expect in-memory returns; forgetting to set output_path in batch scripts.
Understand the failure class
Background: Missing required parameter errors: what 'X is required' and 'the required X param is missing' mean, and how to fix them — this error's family across 27 libraries.
Related errors
- Wrong type of stop in sampling parameters.
- rollout_noise_level must be finite, got {noise!r}
- MiniMax-H3 adaln_t_table must have shape [N, D] with N >= 2,
- MiniMax H3 AdaLN cache has invalid timestep plans
- TP size must be positive.
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/703dc49468eac002.
Report an issue: GitHub.