sgl-project/sglang · error · ValueError

SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be in [0.0, 0.9

Error message

SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be in [0.0, 0.99]

What it means

The SGLANG_INKLING_DEFAULT_REASONING_EFFORT env var parsed as a float but is non-finite or outside [0.0, 0.99]. The default effort for Inkling models must respect the same fractional range as per-request effort.

Source

Thrown at python/sglang/srt/entrypoints/openai/serving_chat.py:686

            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."""
        return reasoning_text, tool_calls

    def _continuous_usage_cached_details(
        self, content: Dict[str, Any]

View on GitHub (pinned to 0132848349)

Solutions

  1. Set a value in [0.0, 0.99], e.g. 0.9
  2. Or unset the variable for the default 0.9

Example fix

# before
SGLANG_INKLING_DEFAULT_REASONING_EFFORT=1.0
# after
SGLANG_INKLING_DEFAULT_REASONING_EFFORT=0.9
Defensive patterns

Strategy: validation

Validate before calling

v = float(os.environ["SGLANG_INKLING_DEFAULT_REASONING_EFFORT"])
assert 0.0 <= v <= 0.99

Prevention

When it happens

Trigger: Server started with SGLANG_INKLING_DEFAULT_REASONING_EFFORT=1.0 or 1 or -0.5.

Common situations: Operators setting 1 for 'maximum' thinking; assuming an inclusive 0-1 scale; copy-pasting effort=1 examples.

Related errors


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