{"record":{"id":"0c25df036cc2b98c","repo":"reflex-dev/reflex","slug":"reflex-config-plugins-entry-entry-name-r-cou","errorCode":null,"errorMessage":"reflex.Config.plugins entry {entry.__name__!r} could not be instantiated and may require arguments; pass an instance instead, e.g. plugins=[{entry.__name__}(...)].","messagePattern":"reflex\\.Config\\.plugins entry (.+?) could not be instantiated and may require arguments; pass an instance instead, e\\.g\\. plugins=\\[(.+?)\\(\\.\\.\\.\\)\\]\\.","errorType":"exception","errorClass":"InvalidPluginConfigError","httpStatus":null,"severity":"error","filePath":"packages/reflex-base/src/reflex_base/config.py","lineNumber":460,"sourceCode":"            InvalidPluginConfigError: If an entry could not be loaded.\n        \"\"\"\n        normalized: list[Plugin] = []\n        invalid: list[_InvalidPlugin] = []\n        for entry in self.plugins:\n            if isinstance(entry, _InvalidPlugin):\n                invalid.append(entry)\n            elif isinstance(entry, Plugin):\n                normalized.append(entry)\n            elif isinstance(entry, type) and issubclass(entry, Plugin):\n                try:\n                    normalized.append(entry())\n                except TypeError as exc:\n                    msg = (\n                        f\"reflex.Config.plugins entry {entry.__name__!r} could not be \"\n                        f\"instantiated and may require arguments; pass an instance \"\n                        f\"instead, e.g. plugins=[{entry.__name__}(...)].\"\n                    )\n                    raise InvalidPluginConfigError(msg) from exc\n            else:\n                msg = (\n                    f\"reflex.Config.plugins must contain Plugin instances, but got \"\n                    f\"{entry!r} of type {type(entry).__name__}. \"\n                    f\"Pass an instance, e.g. plugins=[SitemapPlugin()].\"\n                )\n                raise InvalidPluginConfigError(msg)\n        if invalid:\n            details = \", \".join(p.describe() for p in invalid)\n            msg = (\n                f\"reflex.Config.plugins contains plugin(s) that could not be loaded \"\n                f\"(check REFLEX_PLUGINS import paths): {details}.\"\n            )\n            raise InvalidPluginConfigError(msg)\n        self.plugins = normalized\n\n    def _add_extra_plugins(self):\n        \"\"\"Append plugins declared via the ``REFLEX_EXTRA_PLUGINS`` env var.","sourceCodeStart":442,"sourceCodeEnd":478,"githubUrl":"https://github.com/reflex-dev/reflex/blob/45b8ed5ab735f8a56bbb09a42384f030eb0208e7/packages/reflex-base/src/reflex_base/config.py#L442-L478","documentation":"A class (not an instance) was passed in `rx.Config(plugins=[...])`. Reflex tries to auto-instantiate bare Plugin subclasses, but the class requires constructor arguments, so instantiation raised TypeError and Reflex wraps it with guidance to pass an instance.","triggerScenarios":"`plugins=[MyPlugin]` where `MyPlugin.__init__` requires arguments like `MyPlugin(api_key=...)`.","commonSituations":"Writing the class without parentheses out of convenience when it happens to work for no-arg plugins, then adding required constructor params later.","solutions":["Instantiate explicitly: `plugins=[MyPlugin(api_key=...)]`","Give the Plugin subclass a no-arg `__init__` with defaults if you want the bare-class shorthand"],"exampleFix":"# before\nrx.Config(plugins=[SitemapPlugin])\n\n# after\nrx.Config(plugins=[SitemapPlugin()])","handlingStrategy":"try-catch","validationCode":"from reflex_base.config import Plugin\nimport inspect\n\ndef ensure_plugin_instance(entry):\n    if isinstance(entry, type):\n        assert entry.__init__ is object.__init__ or all(\n            p.default is not inspect.Parameter.empty\n            for p in list(inspect.signature(entry.__init__).parameters.values())[1:]\n        ), f\"{entry.__name__} takes required args; instantiate it\"\n        return entry()\n    return entry","typeGuard":"from reflex_base.config import Plugin\n\ndef is_plugin_instance(v) -> bool:\n    return isinstance(v, Plugin)","tryCatchPattern":"from reflex_base.config import InvalidPluginConfigError\n\ntry:\n    cfg = rx.Config(plugins=[MyPlugin])\nexcept InvalidPluginConfigError:\n    cfg = rx.Config(plugins=[MyPlugin(api_key=key)])","preventionTips":["Always pass instantiated plugins: plugins=[MyPlugin(...)]","Give custom plugins no-arg constructors with sensible defaults"],"tags":["reflex","config","plugins","instantiation"],"backgroundTag":"plugin-instantiation-failed","analyzedSha":"45b8ed5ab735f8a56bbb09a42384f030eb0208e7","analyzedAt":"2026-08-28T19:25:27.644Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}