{"record":{"id":"75ed92d39243eb71","repo":"sgl-project/sglang","slug":"config-namespace-path-r-has-no-leaf-subgroup-na","errorCode":null,"errorMessage":"config namespace {path!r} has no leaf/subgroup {name!r}","messagePattern":"config namespace (.+?) has no leaf/subgroup (.+?)","errorType":"validation","errorClass":"AttributeError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/runtime_context.py","lineNumber":638,"sourceCode":"    \"\"\"\n\n    def __init__(self, path: str):\n        object.__setattr__(self, \"_path\", path)\n        object.__setattr__(self, \"_fields\", {})  # {leaf: value}\n        object.__setattr__(self, \"_subs\", {})  # {subname: _ConfigBag}\n\n    def __getattr__(self, name: str) -> Any:\n        # Fallback only: real leaves/sub-bags resolve via __dict__ before this\n        # runs. Uses object.__getattribute__ (not self._fields) to stay safe if\n        # invoked before __init__ populates the bookkeeping dicts.\n        fields = object.__getattribute__(self, \"_fields\")\n        if name in fields:\n            return fields[name]\n        subs = object.__getattribute__(self, \"_subs\")\n        if name in subs:\n            return subs[name]\n        path = object.__getattribute__(self, \"_path\")\n        raise AttributeError(f\"config namespace {path!r} has no leaf/subgroup {name!r}\")\n\n    def __setattr__(self, name: str, value: Any) -> None:\n        raise AttributeError(\n            f\"config namespace {self._path!r} is read-only; write via \"\n            \"get_context().override(source, ...) or the scoped .override(**kw)\"\n        )\n\n    def _set(self, name: str, value: Any) -> None:\n        \"\"\"Internal write (publish + override) that bypasses the read-only guard.\n        Updates both the bookkeeping map and the real attribute (traceable read).\"\"\"\n        object.__getattribute__(self, \"_fields\")[name] = value\n        object.__setattr__(self, name, value)\n\n    def _set_sub(self, name: str, sub: _ConfigBag) -> None:\n        \"\"\"Register a nested bag as both a bookkeeping entry and a real\n        attribute (so ``bag.sub`` is a plain, traceable attribute load).\"\"\"\n        object.__getattribute__(self, \"_subs\")[name] = sub\n        object.__setattr__(self, name, sub)","sourceCodeStart":620,"sourceCodeEnd":656,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/runtime_context.py#L620-L656","documentation":"Error \"config namespace {path!r} has no leaf/subgroup {name!r}\" thrown in sgl-project/sglang.","triggerScenarios":"Thrown at python/sglang/srt/runtime_context.py:638 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}