sgl-project/sglang · error · NotImplementedError
MiniMax H3 s3:// material URIs require a configured artifact
Error message
MiniMax H3 s3:// material URIs require a configured artifact resolver
What it means
An s3:// material URI was supplied, but MiniMax H3 material localization has no artifact resolver configured, so it explicitly refuses S3.
Source
Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/material_io.py:805
if scheme == "file":
assert parsed is not None
if parsed.netloc not in {"", "localhost"}:
raise ValueError(f"file URI host must be local, got {parsed.netloc!r}")
output_path = _checked_material_file(
Path(urllib.parse.unquote(parsed.path)),
label="MiniMax H3 material source",
)
_validate_material_once(batch, uri, output_path, condition_type=condition_type)
return output_path
if not scheme:
output_path = _checked_material_file(
Path(uri).expanduser(),
label="MiniMax H3 material source",
)
_validate_material_once(batch, uri, output_path, condition_type=condition_type)
return output_path
if scheme == "s3":
raise NotImplementedError(
"MiniMax H3 s3:// material URIs require a configured artifact resolver"
)
cache = batch.extra.setdefault(MINIMAX_H3_MATERIAL_CACHE_EXTRA_KEY, {})
cached = cache.get(uri)
if isinstance(cached, str):
cached_path = Path(cached)
if cached_path.exists():
output_path = _checked_material_file(
cached_path,
label="cached MiniMax H3 material",
)
_validate_material_once(
batch, uri, output_path, condition_type=condition_type
)
return output_path
cache.pop(uri, None)
View on GitHub (pinned to 0132848349)
Solutions
- Download/copy the object to local disk or serve it over HTTP(S) and use that URI
- Check whether your deployment offers an artifact resolver integration to enable
- Use a pre-signed https URL from S3
Example fix
# before uri = "s3://mybucket/ref.png" # after uri = "https://mybucket.s3.amazonaws.com/ref.png?X-Amz-..."
Defensive patterns
Strategy: fallback
Validate before calling
if uri.startswith('s3://'): raise_for_request('s3 not supported; provide https or local path') Try / catch
except NotImplementedError as e: convert object to https/local and retry
Prevention
- Whitelist schemes at the API boundary
- Serve assets over http(s) instead of s3://
When it happens
Trigger: Passing 's3://bucket/key.png' to minimax_h3_localize_material_uri in a deployment without an S3 resolver.
Common situations: Porting configs from another pipeline that supported s3://; assuming object-storage URIs work out of the box.
Related errors
- tar material offset_data and size must be non-negative
- material URI has an invalid base64 payload
- material URI has invalid base64 padding
- material URI has data after base64 padding
- tar material payload is empty
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/e70546419a0bd1d2.
Report an issue: GitHub.