sgl-project/sglang · warning

Invalid value for {self.name}: {e}, using default "{default}

Error message

Invalid value for {self.name}: {e}, using default "{default}"

What it means

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.

Source

Thrown at python/sglang/srt/environ.py:78

        return self.default() if callable(self.default) else self.default

    def get(self) -> Any:
        value = os.getenv(self.name)

        # Explicitly set to None
        if self._set_to_none:
            assert value == str(None)
            return None

        # Not set, return default
        if value is None:
            return self._resolve_default()

        try:
            return self.parse(value)
        except ValueError as e:
            default = self._resolve_default()
            warnings.warn(
                f'Invalid value for {self.name}: {e}, using default "{default}"'
            )
            return default

    def is_set(self):
        return self.name in os.environ

    def set(self, value: Any):
        self._set_to_none = value is None
        os.environ[self.name] = str(value)

    @contextmanager
    def override(self, value: Any):
        backup_present = self.name in os.environ
        backup_value = os.environ.get(self.name)
        backup_set_to_none = self._set_to_none
        self.set(value)
        yield

View on GitHub (pinned to 0132848349)

Solutions

  1. Check the warning message for the exact parse error and fix the exported value to the documented type
  2. Validate env files before deploy (e.g. a preflight script that parses each SGLANG_ var)
  3. If the default is acceptable, remove the variable entirely to avoid ambiguity

Example fix

# before
export SGLANG_ENABLE_TORCH_COMPILE="yes please"
# after
export SGLANG_ENABLE_TORCH_COMPILE="true"
Defensive patterns

Strategy: validation

Validate before calling

from sglang.srt import environ as E
for var in [v for v in dir(E) if isinstance(getattr(E, v), E.EnvVar)]:
    try:
        var.get()
    except Exception as e:
        print(var.name, e)

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


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