{"record":{"id":"6d1ed511d3fa0be3","repo":"reflex-dev/reflex","slug":"unexpected-keyword-arguments-tuple-kwargs","errorCode":null,"errorMessage":"Unexpected keyword arguments: {tuple(kwargs)}","messagePattern":"Unexpected keyword arguments: (.+?)","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"packages/reflex-base/src/reflex_base/vars/base.py","lineNumber":2346,"sourceCode":"        if hint is Any:\n            raise UntypedComputedVarError(var_name=fget.__name__)\n        is_using_fget_name = \"_js_expr\" not in kwargs\n        js_expr = kwargs.pop(\"_js_expr\", fget.__name__ + FIELD_MARKER)\n        kwargs.setdefault(\"_var_type\", hint)\n\n        Var.__init__(\n            self,\n            _js_expr=js_expr,\n            _var_type=kwargs.pop(\"_var_type\"),\n            _var_data=kwargs.pop(\n                \"_var_data\",\n                VarData(field_name=fget.__name__) if is_using_fget_name else None,\n            ),\n        )\n\n        if kwargs:\n            msg = f\"Unexpected keyword arguments: {tuple(kwargs)}\"\n            raise TypeError(msg)\n\n        if backend is None:\n            backend = fget.__name__.startswith(\"_\")\n\n        object.__setattr__(self, \"_backend\", backend)\n        object.__setattr__(self, \"_initial_value\", initial_value)\n        object.__setattr__(self, \"_cache\", cache)\n        object.__setattr__(self, \"_name\", fget.__name__)\n\n        if isinstance(interval, int):\n            interval = datetime.timedelta(seconds=interval)\n\n        object.__setattr__(self, \"_update_interval\", interval)\n\n        object.__setattr__(\n            self,\n            \"_static_deps\",\n            self._calculate_static_deps(deps),","sourceCodeStart":2328,"sourceCodeEnd":2364,"githubUrl":"https://github.com/reflex-dev/reflex/blob/45b8ed5ab735f8a56bbb09a42384f030eb0208e7/packages/reflex-base/src/reflex_base/vars/base.py#L2328-L2364","documentation":"ComputedVar.__init__ accepts a fixed set of keyword arguments (fget, initial_value, cache, deps, auto_deps, interval, backend, plus internal Var kwargs). Any leftover keyword argument after the known ones are consumed raises this TypeError listing the unexpected names. It guards against typos and API drift when constructing ComputedVars directly or via rx.var(...).","triggerScenarios":"Calling rx.var(deps=[...], cache=True, interval=1000, some_typo=True) or ComputedVar(fget, retun_type=int) — any misspelled or removed kwarg; passing kwargs valid in an older Reflex version that were renamed/removed in the current one.","commonSituations":"Upgrading Reflex across versions where ComputedVar/rx.var kwargs were renamed (e.g. dep→deps, refresh_interval→interval); copy-pasting decorator options from old docs or examples; typos like initial_value= vs initial=.","solutions":["Check the signature: valid kwargs are initial_value, cache, deps, auto_deps, interval, backend (and return_type) — remove or rename the offending ones","Compare against the current reflex docs/changelog for rx.var options after upgrading","Use keyword names exactly as documented; let the error message's tuple guide which names to fix"],"exampleFix":"# before\n@rx.var(cache=True, refresh_interval=1000)\ndef now(self) -> int: ...\n\n# after\nimport datetime\n@rx.var(cache=True, interval=datetime.timedelta(seconds=1))\ndef now(self) -> int: ...","handlingStrategy":"validation","validationCode":"import inspect\nimport reflex.vars as rx_vars\n\nVALID = set(inspect.signature(rx_vars.ComputedVar.__init__).parameters) | {'return_type', '_js_expr', '_var_type', '_var_data'}\n\ndef check_kwargs(kwargs: dict) -> None:\n    bad = set(kwargs) - VALID\n    if bad:\n        raise ValueError(f'Unknown rx.var kwargs: {bad}')","typeGuard":null,"tryCatchPattern":"try:\n    decorated = rx.var(**opts)(fn)\nexcept TypeError as e:\n    if 'Unexpected keyword arguments' in str(e):\n        opts = {k: v for k, v in opts.items() if k in VALID}\n        decorated = rx.var(**opts)(fn)\n    else:\n        raise","preventionTips":["Only pass documented kwargs: initial_value, cache, deps, auto_deps, interval, backend","Re-check rx.var options against current docs after upgrading Reflex","Let type checkers validate decorator kwargs by using typed stubs"],"tags":["reflex","computed-var","invalid-arguments","typeerror","api-mismatch"],"backgroundTag":"unexpected-keyword-argument","analyzedSha":"45b8ed5ab735f8a56bbb09a42384f030eb0208e7","analyzedAt":"2026-08-28T19:25:27.644Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}