{"version":"2.1.283","anchor":"plugin-enabled-state-sync-leaves-an-unreadable-installed-plu","canonical_anchor":"plugin-enabled-state-sync-leaves-an-unreadable-installed-plu","heading":"Plugin sync leaves the installed plugins file alone when it holds unreadable records","tier":"notice","area":"Plugins","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.283\/e\/plugin-enabled-state-sync-leaves-an-unreadable-installed-plu","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.283","markdown":"### Plugin sync leaves the installed plugins file alone when it holds unreadable records\n\nIf `installed_plugins.json` holds records this version cannot read, the `enabledPlugins` sync is skipped and the file is left untouched\n\n**Unclear.** Whether you are told when policy-required plugins go unsynced is not stated.\n\n**What**\n\n`installed_plugins.json` is the file where Claude Code keeps its list of installed plugins. Claude Code normally syncs it with your `enabledPlugins` setting, which turns plugins on or off.\n\n- Unreadable content: if the file holds data this version cannot read, such as a record written by a newer version, the sync is skipped and the file is left as it is. Before, the sync always ran and rewrote the file from what it could read.\n\n- Rewrites: when the file is rewritten, parts this version could not read are now kept.\n\n**Why**\n\nSwitching between Claude Code versions should no longer wipe out plugin records written by a newer one. When the sync is skipped, plugins that a policy requires are not synced either.\n\n- Area: Plugins\n- Names: `enabledPlugins`\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5"}