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

  1. Set it to a number: SGLANG_INKLING_DEFAULT_REASONING_EFFORT=0.9
  2. Or unset it to use the built-in default 0.9
  3. 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

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


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/280d6611d78c2d8f. Report an issue: GitHub.