sgl-project/sglang · error · ValueError
invalid Inkling reasoning_effort: {value!r}
Error message
invalid Inkling reasoning_effort: {value!r} What it means
For Inkling models, a string reasoning_effort that is neither a recognized label (none/minimal/low/medium/high/...) nor coercible by float() raises this error. Labels are looked up in _EFFORT_MAP; other strings fall through to numeric parsing which then fails.
Source
Thrown at python/sglang/srt/entrypoints/openai/serving_chat.py:666
parsed = float(value)
if not math.isfinite(parsed) or not 0.0 <= parsed <= 0.99:
raise ValueError("Inkling reasoning_effort must be in [0.0, 0.99]")
return parsed
_EFFORT_MAP = {
"none": 0.0,
"minimal": 0.1,
"low": 0.2,
"medium": 0.7,
"high": 0.9,
"xhigh": 0.99,
"max": 0.99,
}
if value in _EFFORT_MAP:
return _EFFORT_MAP[value]
try:
parsed = float(value)
except (ValueError, TypeError) as exc:
raise ValueError(f"invalid Inkling reasoning_effort: {value!r}") from exc
if not math.isfinite(parsed) or not 0.0 <= parsed <= 0.99:
raise ValueError("Inkling reasoning_effort must be in [0.0, 0.99]")
return parsed
@staticmethod
def _get_inkling_default_reasoning_effort() -> float:
"""Read the default Inkling reasoning effort from the environment."""
from sglang.srt.environ import envs
val = envs.SGLANG_INKLING_DEFAULT_REASONING_EFFORT.get()
if not val:
return 0.9
try:
parsed = float(val)
except (ValueError, TypeError) as exc:
raise ValueError(
"SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric"
) from excView on GitHub (pinned to 0132848349)
Solutions
- Use a supported label: none, minimal, low, medium, high (and other map keys)
- Or use a numeric string like "0.7"
- Check the _EFFORT_MAP keys in serving_chat.py for the exact supported labels
Example fix
// before
{"reasoning_effort": "ultra"}
// after
{"reasoning_effort": "high"} Defensive patterns
Strategy: validation
Validate before calling
LABELS = {"none","minimal","low","medium","high"}
if isinstance(effort, str) and effort not in LABELS:
float(effort) # must be numeric string, else fix Type guard
def valid_inkling_effort_str(s, labels={"none","minimal","low","medium","high"}):
if s in labels: return True
try: return 0.0 <= float(s) <= 0.99
except ValueError: return False Prevention
- Restrict client-side effort inputs to the label set or numeric strings
When it happens
Trigger: reasoning_effort='ultra' or 'very high' on an Inkling model — unknown label and not a numeric string.
Common situations: Using model-specific labels from a different backend; typo in 'medium'; passing model names or free-text descriptors as effort.
Related errors
- name must be provided
- invalid reasoning effort: {effort!r}
- Inkling reasoning_effort must not be a boolean
- Inkling reasoning_effort must be in [0.0, 0.99]
- SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/1daa89db520ad4c5.
Report an issue: GitHub.