{"record":{"id":"1daa89db520ad4c5","repo":"sgl-project/sglang","slug":"invalid-inkling-reasoning-effort-value-r","errorCode":null,"errorMessage":"invalid Inkling reasoning_effort: {value!r}","messagePattern":"invalid Inkling reasoning_effort: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":400,"severity":"error","filePath":"python/sglang/srt/entrypoints/openai/serving_chat.py","lineNumber":666,"sourceCode":"            parsed = float(value)\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        _EFFORT_MAP = {\n            \"none\": 0.0,\n            \"minimal\": 0.1,\n            \"low\": 0.2,\n            \"medium\": 0.7,\n            \"high\": 0.9,\n            \"xhigh\": 0.99,\n            \"max\": 0.99,\n        }\n        if value in _EFFORT_MAP:\n            return _EFFORT_MAP[value]\n        try:\n            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","sourceCodeStart":648,"sourceCodeEnd":684,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/entrypoints/openai/serving_chat.py#L648-L684","documentation":"For Inkling models, a string reasoning_effort that is neither a recognized label (none/minimal/low/medium/high/...) nor coercible by float() raises this error. Labels are looked up in _EFFORT_MAP; other strings fall through to numeric parsing which then fails.","triggerScenarios":"reasoning_effort='ultra' or 'very high' on an Inkling model — unknown label and not a numeric string.","commonSituations":"Using model-specific labels from a different backend; typo in 'medium'; passing model names or free-text descriptors as effort.","solutions":["Use a supported label: none, minimal, low, medium, high (and other map keys)","Or use a numeric string like \"0.7\"","Check the _EFFORT_MAP keys in serving_chat.py for the exact supported labels"],"exampleFix":"// before\n{\"reasoning_effort\": \"ultra\"}\n// after\n{\"reasoning_effort\": \"high\"}","handlingStrategy":"validation","validationCode":"LABELS = {\"none\",\"minimal\",\"low\",\"medium\",\"high\"}\nif isinstance(effort, str) and effort not in LABELS:\n    float(effort)  # must be numeric string, else fix","typeGuard":"def valid_inkling_effort_str(s, labels={\"none\",\"minimal\",\"low\",\"medium\",\"high\"}):\n    if s in labels: return True\n    try: return 0.0 <= float(s) <= 0.99\n    except ValueError: return False","tryCatchPattern":null,"preventionTips":["Restrict client-side effort inputs to the label set or numeric strings"],"tags":["inkling","reasoning","validation","sglang"],"backgroundTag":"invalid-request-parameter","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}