{"record":{"id":"ccb7a5cb067a1603","repo":"jax-ml/jax","slug":"invalid-value-default-str-for-jax-flag-name","errorCode":null,"errorMessage":"Invalid value \"{default_str}\" for JAX flag {name}","messagePattern":"Invalid value \"(.+?)\" for JAX flag (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"jax/_src/config.py","lineNumber":642,"sourceCode":"      the trace context.\n    extra_validator: optional function to validate the value of the config\n      option.\n\n  Returns:\n    A contextmanager to control the thread-local state value.\n  \"\"\"\n  if not isinstance(default, enum_class):\n    raise TypeError(\n        f'Default value must be of type {enum_class}, got {default} '\n        f\"of type {getattr(type(default), '__name__', type(default))}\"\n    )\n  name = name.lower()\n  default_str = os.getenv(name.upper(), None)\n  if default_str is not None:\n    try:\n      default = enum_class(default_str)\n    except ValueError as e:\n      raise ValueError(f\"Invalid value \\\"{default_str}\\\" for JAX flag {name}\") from e\n  config._contextmanager_flags.add(name)\n\n  def parser(new_val):\n    if isinstance(new_val, str):\n      return enum_class(new_val)\n    if not isinstance(new_val, enum_class):\n      raise TypeError(\n          f'new enum value must be an instance of {enum_class}, got'\n          f' {new_val} of type {type(new_val)}.'\n      )\n    if extra_validator is not None:\n      extra_validator(new_val)\n    return new_val\n\n  s = State[EnumType](\n      name,\n      default,\n      help,","sourceCodeStart":624,"sourceCodeEnd":660,"githubUrl":"https://github.com/jax-ml/jax/blob/1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb/jax/_src/config.py#L624-L660","documentation":"enum_class_state reads JAX_<FLAG> and tries enum_class(default_str). If the env var string does not map to any Enum value, it raises this ValueError (chained from the Enum's own ValueError) at import/definition time.","triggerScenarios":"Exporting JAX_MY_FLAG=old_name after an enum value was renamed in a jax upgrade (e.g. profiler or dumping option renames).","commonSituations":"Upgrading jax where an enum-backed flag's member names changed, leaving stale env vars in shell profiles, Dockerfiles, or CI secrets.","solutions":["List valid members: python -c 'from x import MyEnum; print([e.value for e in MyEnum])' and set the env var to one of them","Unset the env var to fall back to the code default","After jax upgrades, re-check flag values documented in the release notes"],"exampleFix":"# before\nexport JAX_MY_FLAG=old_value\n# after\nexport JAX_MY_FLAG=new_value  # matches enum_class member","handlingStrategy":"validation","validationCode":"import os\nraw = os.getenv('JAX_MY_FLAG')\nif raw is not None:\n    enum_class(raw)  # raises early with a clear Enum error if invalid","typeGuard":null,"tryCatchPattern":null,"preventionTips":["After jax upgrades, grep release notes for renamed enum-valued flags","Keep env-var-driven flag values in one place (e.g. a .env file) so they're auditable"],"tags":["jax","config","valueerror","environment-variable","enum"],"backgroundTag":"invalid-env-var-value","analyzedSha":"1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb","analyzedAt":"2026-08-27T09:53:25.647Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}