{"id":"1baa84c697927e64","repo":"python-poetry/poetry","slug":"unknown-plugin-group-group-for-name","errorCode":null,"errorMessage":"Unknown plugin group ({group}) for {name}","messagePattern":"Unknown plugin group \\((.+?)\\) for (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/poetry/console/commands/self/show/plugins.py","lineNumber":36,"sourceCode":"    package: Package\n    plugins: list[metadata.EntryPoint] = dataclasses.field(default_factory=list)\n    application_plugins: list[metadata.EntryPoint] = dataclasses.field(\n        default_factory=list\n    )\n\n    def append(self, entry_point: metadata.EntryPoint) -> None:\n        from poetry.plugins.application_plugin import ApplicationPlugin\n        from poetry.plugins.plugin import Plugin\n\n        group = entry_point.group\n\n        if group == ApplicationPlugin.group:\n            self.application_plugins.append(entry_point)\n        elif group == Plugin.group:\n            self.plugins.append(entry_point)\n        else:\n            name = entry_point.name\n            raise ValueError(f\"Unknown plugin group ({group}) for {name}\")\n\n\nclass SelfShowPluginsCommand(SelfCommand):\n    name = \"self show plugins\"\n    description = \"Shows information about the currently installed plugins.\"\n    help = \"\"\"\\\nThe <c1>self show plugins</c1> command lists all installed Poetry plugins.\n\nPlugins can be added and removed using the <c1>self add</c1> and <c1>self remove</c1> \\\ncommands respectively.\n\n<warning>This command does not list packages that do not provide a Poetry plugin.</>\n\"\"\"\n\n    def _system_project_handle(self) -> int:\n        from packaging.utils import canonicalize_name\n\n        from poetry.plugins.application_plugin import ApplicationPlugin","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/python-poetry/poetry/blob/92b74dcfe348d0e01e14d40d6c1fa47a4ee04a54/src/poetry/console/commands/self/show/plugins.py#L18-L54","documentation":"ValueError from `PluginPackage.append` (self/show/plugins.py:28-36) when an entry point's group is neither `ApplicationPlugin.group` nor `Plugin.group`. `poetry self show plugins` iterates entry points registered by installed plugin packages; an unknown group indicates a plugin declaring an entry point under a non-Poetry group.","triggerScenarios":"An installed plugin package registers an entry point under a typo'd or outdated group string; a package misuses the Poetry plugin entry point namespace.","commonSituations":"A third-party plugin package with a packaging bug; an old plugin targeting a previous Poetry entry point name; an unrelated package coincidentally using a `poetry.*` group.","solutions":["Update or uninstall the offending plugin: `poetry self show plugins` to identify it, then `poetry self remove <plugin>`.","Report the entry point group mismatch to the plugin maintainer.","Check the plugin's `pyproject.toml` `[project.entry-points]` uses `poetry.plugin` or `poetry.application.plugin`."],"exampleFix":"# before\n# plugin pyproject.toml registers group \"poetry.plugins\"\n# after\n[project.entry-points.poetry.plugin]\nmy_plugin = \"my_plugin:MyPlugin\"","handlingStrategy":"try-catch","validationCode":"from poetry.plugins.application_plugin import ApplicationPlugin\nfrom poetry.plugins.plugin import Plugin\nVALID_GROUPS = {ApplicationPlugin.group, Plugin.group}\nfor ep in entry_points:\n    assert ep.group in VALID_GROUPS, f\"bad group {ep.group} for {ep.name}\"","typeGuard":"def is_known_plugin_group(group: str) -> bool:\n    from poetry.plugins.application_plugin import ApplicationPlugin\n    from poetry.plugins.plugin import Plugin\n    return group in {ApplicationPlugin.group, Plugin.group}","tryCatchPattern":"try:\n    info.append(entry_point)\nexcept ValueError:\n    # skip the bad entry point, log a warning, or uninstall the plugin\n    ...","preventionTips":["Install plugins only from trusted sources that target `poetry.plugin` / `poetry.application.plugin`.","Pin plugin versions known to work with your Poetry.","Run `poetry self show plugins` after each plugin change."],"tags":["plugins","entry-points","self"],"analyzedSha":"92b74dcfe348d0e01e14d40d6c1fa47a4ee04a54","analyzedAt":"2026-08-04T20:33:34.072Z","schemaVersion":2}