Some passwords do not synchronize
For years, I have had problems with some passwords getting “stuck”, i.e., not synching between devices. The “stuck” passwords stay only on one device. I currently have 265 passwords on an Android mobile device, but only 230 on the PC. Synchronization mostly works, but not for all passwords. It is annoying to find, for example, that a password just created on the PC is not on the phone when I need it.
* The synchronization problems has existed for years. The “stuck” passwords accumulate slowly over time.
* The synchronization problem occurs between Android and PC in both directions. Most likely it has also occurred between two mobile devices.
* When a password gets stuck on one device, problem can sometimes be solved by editing that password record, e.g., the notes field. This does not always work on the first attempt, and I’m not sure why. In any case, if I do not edit the stuck entry, it definitely will never be synchronized.
* Reconnecting the devices with a code does not help.
* Reinstalling the PC application does not help. Just tried it, and the uninstall function does not seem to remove the database from the PC. Thus reinstalling the application is not a fresh start. Even if reinstalling did work, that would cause loss of the passwords that are only on that side.
* It is easy to detect the synchronization problem by comparing the number of passwords between devices. However, there is no easy way to compare the databases between the two devices and identify the stuck passwords. If they could be identifier easily, I might copy them to new records and delete the stuck ones.
It seems that there is something fundamentally wrong with the synchronization algorithm. When the password record is “stuck”, Key simply does not detect that the record is on one device and not in another. It is natural that two device sometimes get out of sync, but the synchronization should be designed so that it eventually recovers.
Looking at the database backup file x.fsk, the records have a version field “rev”. That field is probably used to detect updates. But no matter how the update detection for revised records is implemented, it it should not cause some records to stay on just one device. The problem must be in the algorithm that is used for comparing the databases and deciding which records exist in one location and not in the other.