{"version":"2.1.228","anchor":"installed-plugin-list-saved-through-a-transactional-store-wh","canonical_anchor":"installed-plugin-list-saved-through-a-transactional-store-wh","heading":"Installed plugin list saved through a transactional store when one exists","tier":"internal","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.228\/e\/installed-plugin-list-saved-through-a-transactional-store-wh","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.228","markdown":"### Installed plugin list saved through a transactional store when one exists\n\nThe installed-plugin list is written through a safer read-modify-write when storage supports it.\n\n**What**\n\nWriting the record of which plugins are installed now goes through a read-modify-write on the storage backend when one is available, and falls back to the previous direct file write when there is none.\n\n**Details**\n\n- The read accepts the older file shape and migrates it, or parses the current one directly.\n- A write that fails because a lock looks suspect is retried, honouring a retry delay supplied by the server.\n- File permissions come from the process umask, and load failures are reported separately from save failures.\n\n**Evidence**\n\n`installed plugins registry update settled without an outcome`\n\n- Area: Plugins\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 1\/5"}