KeymasterCoordinator._async_save_data() tracks _prev_kmlocks_dict to avoid rewriting unchanged lock state. Home Assistant's Store.async_save() logs lower-level WriteError/SerializationError failures instead of propagating them, so the coordinator can advance its persisted-state cache even when the data did not reach disk. A later identical save can then be skipped because the in-memory cache claims it was already persisted.
This predates PR #695; the PR only made the cache/write ordering stricter for exceptions that do propagate. A complete fix likely needs observing the lower-level write path or otherwise confirming durability before advancing _prev_kmlocks_dict.
KeymasterCoordinator._async_save_data()tracks_prev_kmlocks_dictto avoid rewriting unchanged lock state. Home Assistant'sStore.async_save()logs lower-levelWriteError/SerializationErrorfailures instead of propagating them, so the coordinator can advance its persisted-state cache even when the data did not reach disk. A later identical save can then be skipped because the in-memory cache claims it was already persisted.This predates PR #695; the PR only made the cache/write ordering stricter for exceptions that do propagate. A complete fix likely needs observing the lower-level write path or otherwise confirming durability before advancing
_prev_kmlocks_dict.