sgl-project/sglang · error · ValueError
Inkling reasoning_effort must be in [0.0, 0.99]
Error message
Inkling reasoning_effort must be in [0.0, 0.99]
What it means
Raised when a numeric reasoning_effort for an Inkling model is non-finite or outside [0.0, 0.99]. Inkling models encode reasoning depth as a fraction of the budget; 1.0, negatives, NaN, or inf are invalid.
Source
Thrown at python/sglang/srt/entrypoints/openai/serving_chat.py:650
or last.get("reasoning_content")
):
return None
messages.pop()
return last["content"]
@staticmethod
def _parse_inkling_reasoning_effort(
value: Optional[Union[str, float]],
) -> Optional[float]:
"""Convert an OpenAI-style reasoning_effort to an Inkling float."""
if value is None:
return None
if isinstance(value, bool):
raise ValueError("Inkling reasoning_effort must not be a boolean")
if isinstance(value, (int, float)):
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]")View on GitHub (pinned to 0132848349)
Solutions
- Use a value <= 0.99, e.g. 0.9 for maximum
- Use label strings like 'high' which map internally to valid floats
- Clamp client-side: min(effort, 0.99)
Example fix
// before
{"reasoning_effort": 1.0}
// after
{"reasoning_effort": 0.9} Defensive patterns
Strategy: validation
Validate before calling
if isinstance(effort, (int, float)) and not isinstance(effort, bool):
import math
assert math.isfinite(effort) and 0.0 <= effort <= 0.99 Type guard
def valid_inkling_number(v):
import math
return not isinstance(v, bool) and isinstance(v, (int, float)) and math.isfinite(v) and 0.0 <= v <= 0.99 Prevention
- Treat the Inkling scale as [0, 0.99]; use 0.9 for maximum
- Clamp: min(max(effort, 0.0), 0.99)
When it happens
Trigger: reasoning_effort=1.0 or 1 (int coerces to 1.0), -0.1, float('nan')/inf via numeric input on an Inkling model request.
Common situations: Porting effort='max' semantics to 1.0; assuming an OpenAI-style 0-1 inclusive scale where 1.0 means maximum; off-by-one in normalized client configs.
Related errors
- Inkling reasoning_effort must not be a boolean
- invalid Inkling reasoning_effort: {value!r}
- SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric
- SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be in [0.0, 0.9
- name must be provided
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/21b75dcadaed08a3.
Report an issue: GitHub.