{"version":"2.1.283","anchor":"plugin-installuninstall-refuse-when-install-records-are-unr","canonical_anchor":"plugin-installuninstall-refuse-when-install-records-are-unr","heading":"Plugin install and uninstall now stop if the install records cannot be read","tier":"notice","area":"Plugins","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.283\/e\/plugin-installuninstall-refuse-when-install-records-are-unr","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.283","markdown":"### Plugin install and uninstall now stop if the install records cannot be read\n\n`claude plugin install` and `claude plugin uninstall` now fail with install_records_unreadable instead of going ahead when their records are unreadable\n\n**Unclear.** It is not clear what the new directory-related failure reasons check.\n\n**What**\n\n`claude plugin install` and `claude plugin uninstall` now read the install records first (the saved list of which plugins are installed and where from). If those records cannot be read, the command stops with the failure code `install_records_unreadable` and a message saying the plugin was not installed, or was not uninstalled, instead of carrying on.\n\nInstall can also now fail for these reasons:\n\n- \"installed-list-held\"\n\n- \"directory-binding-unreadable\"\n\n- \"directory-identity-changed\"\n\nUninstall also changed:\n\n- If you give a full `plugin@marketplace` id and that exact id is recorded, it uses that one.\n\n- It now works out which other installed copies share the same plugin name from the registry. Before, it treated that list as empty.\n\n**Why**\n\nThis stops installs and removals from building on top of damaged records, which could otherwise leave plugins in a muddled state.\n\n- Area: Plugins\n- Names: `claude plugin install`, `claude plugin uninstall`\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5"}