{"record":{"id":"280d6611d78c2d8f","repo":"sgl-project/sglang","slug":"sglang-inkling-default-reasoning-effort-must-be-nu","errorCode":null,"errorMessage":"SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric","messagePattern":"SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric","errorType":"exception","errorClass":"ValueError","httpStatus":500,"severity":"error","filePath":"python/sglang/srt/entrypoints/openai/serving_chat.py","lineNumber":682,"sourceCode":"            parsed = float(value)\n        except (ValueError, TypeError) as exc:\n            raise ValueError(f\"invalid Inkling reasoning_effort: {value!r}\") from exc\n        if not math.isfinite(parsed) or not 0.0 <= parsed <= 0.99:\n            raise ValueError(\"Inkling reasoning_effort must be in [0.0, 0.99]\")\n        return parsed\n\n    @staticmethod\n    def _get_inkling_default_reasoning_effort() -> float:\n        \"\"\"Read the default Inkling reasoning effort from the environment.\"\"\"\n        from sglang.srt.environ import envs\n\n        val = envs.SGLANG_INKLING_DEFAULT_REASONING_EFFORT.get()\n        if not val:\n            return 0.9\n        try:\n            parsed = float(val)\n        except (ValueError, TypeError) as exc:\n            raise ValueError(\n                \"SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be numeric\"\n            ) from exc\n        if not math.isfinite(parsed) or not 0.0 <= parsed <= 0.99:\n            raise ValueError(\n                \"SGLANG_INKLING_DEFAULT_REASONING_EFFORT must be in [0.0, 0.99]\"\n            )\n        return parsed\n\n    def _decode_response(self, ret_item: Dict[str, Any]) -> Union[str, ErrorResponse]:\n        \"\"\"Extract text from response.\"\"\"\n        return ret_item[\"text\"]\n\n    def _get_parsed_response_fields(\n        self,\n        reasoning_text: Optional[str],\n        tool_calls: Optional[List[Dict]],\n    ) -> tuple[Optional[str], Optional[List[Dict]]]:\n        \"\"\"Post-process reasoning and tool_calls before building response.\"\"\"","sourceCodeStart":664,"sourceCodeEnd":700,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/entrypoints/openai/serving_chat.py#L664-L700","documentation":"_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.","triggerScenarios":"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__.","commonSituations":"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.","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'])\""],"exampleFix":"# before\nSGLANG_INKLING_DEFAULT_REASONING_EFFORT=high\n# after\nSGLANG_INKLING_DEFAULT_REASONING_EFFORT=0.9","handlingStrategy":"validation","validationCode":"import os\nv = os.environ.get(\"SGLANG_INKLING_DEFAULT_REASONING_EFFORT\")\nif v:\n    f = float(v)  # fails fast at deploy time\n    assert 0.0 <= f <= 0.99","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["environment-variable","inkling","reasoning","server-config","sglang"],"backgroundTag":"missing-env-var","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}