sgl-project/sglang · error · ValueError
unknown weight reader {requested!r}; available: {available_r
Error message
unknown weight reader {requested!r}; available: {available_reader_names()} What it means
select_weight_reader validates its requested argument against the registry of available reader backends. A name that matches no registered reader is rejected rather than silently falling back, so the caller knows their explicit choice was not honored.
Source
Thrown at python/sglang/multimodal_gen/runtime/loader/weight_readers/__init__.py:42
return [b.name for b in _READERS if b.is_available()]
def select_weight_reader(
*,
requested: str | None = None,
needs_key_filter: bool = False,
) -> WeightReader:
"""Pick a reader, honouring an explicit request where it can be honoured.
`requested` names a reader; None means take the environment's preference.
A reader that cannot skip keys is passed over when the caller needs to,
because reading the whole checkpoint to discard most of it is worse than
reading the part that was asked for more slowly.
"""
if requested is not None:
chosen = next((b for b in _READERS if b.name == requested), None)
if chosen is None:
raise ValueError(
f"unknown weight reader {requested!r}; "
f"available: {available_reader_names()}"
)
elif envs.SGLANG_USE_RUNAI_MODEL_STREAMER and RunaiStreamerReader.is_available():
chosen = RunaiStreamerReader
else:
chosen = FALLBACK_READER
if not chosen.is_available():
logger.info(
"Weight reader %s is not installed; using %s",
chosen.name,
FALLBACK_READER.name,
)
chosen = FALLBACK_READER
if needs_key_filter and not chosen.supports_key_filter:
logger.debug(
"Weight reader %s cannot skip keys at load time; using %s",View on GitHub (pinned to 0132848349)
Solutions
- Read the error message: it lists valid names via available_reader_names(); use one of those exactly
- Install the optional dependency for the desired reader (e.g. pip install runai-model-streamer) if it is merely unavailable
- Omit the argument to let selection fall back automatically
Example fix
# before select_weight_reader(requested="runai_streamer") # after select_weight_reader(requested="runai") # exact name from available_reader_names()
Defensive patterns
Strategy: type-guard
Validate before calling
from sglang.multimodal_gen.runtime.loader.weight_readers import available_reader_names
def reader_name_valid(name: str) -> bool:
return name in available_reader_names() Type guard
from sglang.multimodal_gen.runtime.loader.weight_readers import available_reader_names
def is_known_reader(name: str | None) -> bool:
"""Type guard: name is a registered weight reader (for typed configs)."""
return name is None or name in available_reader_names() Try / catch
try:
select_weight_reader(requested=name)
except ValueError:
name = None # fall back to automatic selection
select_weight_reader(requested=name) Prevention
- Derive reader names from available_reader_names(), never hard-code them
- Install the reader's optional deps (e.g. runai-model-streamer) before requesting it
When it happens
Trigger: Calling select_weight_reader(requested="<name>") where <name> does not equal any registered reader's .name (e.g. "runai" when the Runai reader is unavailable or registered under a different name, or a typo like "safetensor").
Common situations: Typos in the reader name, version drift where a reader was renamed or removed, or requesting a reader whose optional dependencies (e.g. runai-model-streamer) are not installed.
Related errors
- pipeline_cls must inherit from ComposedPipelineBase
- pipeline_config_cls must inherit from PipelineConfig
- Expected a string in the format `<module>:<class>`
- v_cache must be provided
- q can only be None when only_qv=True
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/e4abe548579140cc.
Report an issue: GitHub.