{"record":{"id":"53c127d7106d5575","repo":"reflex-dev/reflex","slug":"could-not-interpret-value-r-for-field-name-as","errorCode":null,"errorMessage":"Could not interpret {value!r} for {field_name} as any of {union_types}: {errors}","messagePattern":"Could not interpret (.+?) for (.+?) as any of (.+?): (.+?)","errorType":"exception","errorClass":"EnvironmentVarValueError","httpStatus":null,"severity":"error","filePath":"packages/reflex-base/src/reflex_base/environment.py","lineNumber":311,"sourceCode":"    field_type = value_inside_optional(field_type)\n\n    # Unwrap Annotated to get the base type for env var interpretation.\n    # Preserve SequenceOptions and PathExistsFlag markers.\n    annotated_metadata: tuple[Any, ...] = ()\n    if get_origin(field_type) is Annotated:\n        annotated_args = get_args(field_type)\n        annotated_metadata = annotated_args[1:]\n        field_type = annotated_args[0]\n\n    if is_union(field_type):\n        errors = []\n        for arg in (union_types := get_args(field_type)):\n            try:\n                return interpret_env_var_value(value, arg, field_name)\n            except (ValueError, EnvironmentVarValueError) as e:  # noqa: PERF203\n                errors.append(e)\n        msg = f\"Could not interpret {value!r} for {field_name} as any of {union_types}: {errors}\"\n        raise EnvironmentVarValueError(msg)\n\n    value = value.strip()\n\n    if field_type is bool:\n        return interpret_boolean_env(value, field_name)\n    if field_type is str:\n        return value\n    if field_type is LogLevel:\n        loglevel = LogLevel.from_string(value)\n        if loglevel is None:\n            msg = f\"Invalid log level value: {value} for {field_name}\"\n            raise EnvironmentVarValueError(msg)\n        return loglevel\n    if field_type is int:\n        return interpret_int_env(value, field_name)\n    if field_type is float:\n        return interpret_float_env(value, field_name)\n    if field_type is Path:","sourceCodeStart":293,"sourceCodeEnd":329,"githubUrl":"https://github.com/reflex-dev/reflex/blob/45b8ed5ab735f8a56bbb09a42384f030eb0208e7/packages/reflex-base/src/reflex_base/environment.py#L293-L329","documentation":"For union-typed fields (e.g. `str | int | None`), interpret_env_var_value tries each union member's interpreter in order and collects their errors; if none succeeds it raises EnvironmentVarValueError listing the value, field, and all per-type failure messages. Note str members succeed on almost anything, so hitting this usually means the union has no str member.","triggerScenarios":"A union-typed env field where the value matches none of the member types, e.g. `int | float | None` (no str) given 'abc', or Optional[int] given 'yes'.","commonSituations":"Optional numeric fields receiving textual values, or empty strings where None sentinel handling isn't configured.","solutions":["Read the per-type errors in the message — each explains why one branch failed","Supply a value valid for at least one union member","For optional fields, use the configured None sentinel (often 'none'/empty) rather than arbitrary text"],"exampleFix":"# before\n# field: int | None ; MAX_RETRIES=unlimited\n# after\nMAX_RETRIES=5\n","handlingStrategy":"validation","validationCode":"import typing\nmembers = typing.get_args(SomeUnion)\n# dry-run the interpreter before app start\nfrom reflex_base.environment import interpret_env_var_value\ninterpret_env_var_value(raw, SomeUnion, \"FIELD\")  # raises early with clear message","typeGuard":"null","tryCatchPattern":"except EnvironmentVarValueError as e:\n    logger.error(\"union parse failed: %s\", e)\n    raw = default_value","preventionTips":["For Optional fields, document the None sentinel","Avoid unions without a str member for free-form env input"],"tags":["environment","union-type","validation","config"],"backgroundTag":"env-var-validation","analyzedSha":"45b8ed5ab735f8a56bbb09a42384f030eb0208e7","analyzedAt":"2026-08-28T19:25:27.644Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}