{"record":{"id":"46f48f1c40581a36","repo":"reflex-dev/reflex","slug":"cannot-specify-both-default-and-default-factory-46f48f","errorCode":null,"errorMessage":"cannot specify both default and default_factory","messagePattern":"cannot specify both default and default_factory","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"packages/reflex-base/src/reflex_base/vars/base.py","lineNumber":3723,"sourceCode":"    default_factory: Callable[[], FIELD_TYPE] | None = None,\n    is_var: bool = True,\n) -> Field[FIELD_TYPE] | FIELD_TYPE:\n    \"\"\"Create a field for a state.\n\n    Args:\n        default: The default value for the field.\n        default_factory: The default factory for the field.\n        is_var: Whether the field is a Var.\n\n    Returns:\n        The field for the state.\n\n    Raises:\n        ValueError: If both default and default_factory are specified.\n    \"\"\"\n    if default is not MISSING and default_factory is not None:\n        msg = \"cannot specify both default and default_factory\"\n        raise ValueError(msg)\n    if default is not MISSING and not types.is_immutable(default):\n        logger.warning(\n            \"Mutable default values are not recommended. \"\n            \"Use default_factory instead to avoid unexpected behavior.\"\n        )\n        return Field(\n            default_factory=functools.partial(copy.deepcopy, default),\n            is_var=is_var,\n        )\n    return Field(\n        default=default,\n        default_factory=default_factory,\n        is_var=is_var,\n    )\n\n\n@dataclass_transform(kw_only_default=True, field_specifiers=(field,))\nclass BaseStateMeta(ABCMeta):","sourceCodeStart":3705,"sourceCodeEnd":3741,"githubUrl":"https://github.com/reflex-dev/reflex/blob/45b8ed5ab735f8a56bbb09a42384f030eb0208e7/packages/reflex-base/src/reflex_base/vars/base.py#L3705-L3741","documentation":"rx.Field() rejects specifying both default and default_factory because the resulting value would be ambiguous — mirrors dataclasses.field semantics.","triggerScenarios":"rx.Field(default=[], default_factory=list) or any call passing both.","commonSituations":"Copying a dataclass field definition into reflex state; refactoring from default to default_factory and forgetting to delete the old default.","solutions":["Remove default= and keep default_factory for mutable defaults","For immutable defaults (int, str, tuple), keep default= and drop default_factory"],"exampleFix":"# before\nrx.Field(default=[], default_factory=list)\n# after\nrx.Field(default_factory=list)","handlingStrategy":"validation","validationCode":"assert not (default is not MISSING and default_factory is not None), 'pick one of default/default_factory'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use default_factory for mutable defaults and omit default","Use default for immutables and omit default_factory"],"tags":["reflex","field","default-value","dataclasses"],"backgroundTag":"conflicting-default-arguments","analyzedSha":"45b8ed5ab735f8a56bbb09a42384f030eb0208e7","analyzedAt":"2026-08-28T19:25:27.644Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}