{"record":{"id":"d209096269137f55","repo":"sgl-project/sglang","slug":"invalid-value-for-self-name-e-using-default","errorCode":null,"errorMessage":"Invalid value for {self.name}: {e}, using default \"{default}\"","messagePattern":"Invalid value for (.+?): (.+?), using default \"(.+?)\"","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"python/sglang/srt/environ.py","lineNumber":78,"sourceCode":"        return self.default() if callable(self.default) else self.default\n\n    def get(self) -> Any:\n        value = os.getenv(self.name)\n\n        # Explicitly set to None\n        if self._set_to_none:\n            assert value == str(None)\n            return None\n\n        # Not set, return default\n        if value is None:\n            return self._resolve_default()\n\n        try:\n            return self.parse(value)\n        except ValueError as e:\n            default = self._resolve_default()\n            warnings.warn(\n                f'Invalid value for {self.name}: {e}, using default \"{default}\"'\n            )\n            return default\n\n    def is_set(self):\n        return self.name in os.environ\n\n    def set(self, value: Any):\n        self._set_to_none = value is None\n        os.environ[self.name] = str(value)\n\n    @contextmanager\n    def override(self, value: Any):\n        backup_present = self.name in os.environ\n        backup_value = os.environ.get(self.name)\n        backup_set_to_none = self._set_to_none\n        self.set(value)\n        yield","sourceCodeStart":60,"sourceCodeEnd":96,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/environ.py#L60-L96","documentation":"sglang's typed environment-variable descriptor failed to parse the value you exported (self.parse raised ValueError), so it fell back to the documented default and warned. The system runs, but with the default setting rather than what you intended.","triggerScenarios":"Exporting an SGLANG_* variable with a malformed value, e.g. SGLANG_...=true1 for a bool, abc for an int/float, or a bad list syntax — any value the descriptor's parser rejects.","commonSituations":"Typos in .env files or Kubernetes env stanzas; quoting issues in shell exports; CI injecting strings like 'True ' with whitespace or '1;0' for booleans.","solutions":["Check the warning message for the exact parse error and fix the exported value to the documented type","Validate env files before deploy (e.g. a preflight script that parses each SGLANG_ var)","If the default is acceptable, remove the variable entirely to avoid ambiguity"],"exampleFix":"# before\nexport SGLANG_ENABLE_TORCH_COMPILE=\"yes please\"\n# after\nexport SGLANG_ENABLE_TORCH_COMPILE=\"true\"","handlingStrategy":"validation","validationCode":"from sglang.srt import environ as E\nfor var in [v for v in dir(E) if isinstance(getattr(E, v), E.EnvVar)]:\n    try:\n        var.get()\n    except Exception as e:\n        print(var.name, e)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Preflight-parse env config before serving","Use exact literal values ('true'/'false', integers) per variable docs"],"tags":["environment-variables","configuration","parsing","fallback"],"backgroundTag":"invalid-env-var-value","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}