sgl-project/sglang · error · ValueError
SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric
Error message
SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric
What it means
_get_inkling_default_reasoning_effort reads SGLANG_INKLING_DEFAULT_REASONING_EFFORT at server startup and requires it to be numeric when set (non-empty). A non-numeric value crashes/raises during serving-chat initialization.
Source
Thrown at python/sglang/srt/entrypoints/openai/serving_chat.py:682
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 exc
if not math.isfinite(parsed) or not 0.0 <= parsed <= 0.99:
raise ValueError(
"SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be in [0.0, 0.99]"
)
return parsed
def _decode_response(self, ret_item: Dict[str, Any]) -> Union[str, ErrorResponse]:
"""Extract text from response."""
return ret_item["text"]
def _get_parsed_response_fields(
self,
reasoning_text: Optional[str],
tool_calls: Optional[List[Dict]],
) -> tuple[Optional[str], Optional[List[Dict]]]:
"""Post-process reasoning and tool_calls before building response."""View on GitHub (pinned to 0132848349)
Solutions
- Set it to a number: SGLANG_INKLING_DEFAULT_REASONING_EFFORT=0.9
- Or unset it to use the built-in default 0.9
- Verify with: python -c "import os; float(os.environ['SGLANG_INKLING_DEFAULT_REASONING_EFFORT'])"
Example fix
# before SGLANG_INKLING_DEFAULT_REASONING_EFFORT=high # after SGLANG_INKLING_DEFAULT_REASONING_EFFORT=0.9
Defensive patterns
Strategy: validation
Validate before calling
import os
v = os.environ.get("SGLANG_INKLING_DEFAULT_REASONING_EFFORT")
if v:
f = float(v) # fails fast at deploy time
assert 0.0 <= f <= 0.99 Prevention
- Env var must be numeric only — labels are not accepted
- Add a startup smoke test that floats the env value
- Document the range in your deployment manifests
When it happens
Trigger: Launch the server with SGLANG_INKLING_DEFAULT_REASONING_EFFORT=high (or any non-float string) while serving an Inkling model; the error surfaces on the first request or at __init__.
Common situations: Operators putting OpenAI-style labels like 'high' in the env var, which only accepts numbers; leftover values from other env configs; Docker/k8s env misconfiguration.
Understand the failure class
Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.
Related errors
- SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be in [0.0, 0.9
- Inkling reasoning_effort must not be a boolean
- Inkling reasoning_effort must be in [0.0, 0.99]
- invalid Inkling reasoning_effort: {value!r}
- name must be provided
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/280d6611d78c2d8f.
Report an issue: GitHub.