Several users of my app Keepass2Android are reporting corrupt display of their database (https://keepass2android.codeplex.com/workitem/46). Finally, one of the users sent me a file demonstrating the issue. It turns out that the database has several entries with the same UUID (and I suspect it's the same for the other users because of the symptoms they describe). The same problem occurs when loading the databases in Keepassdroid. This is because both Keepassdroid and Keepass2Android use the UUID as a unique key in some kind of HashMap/Dictionary to store the entries.
I thought a UUID is really unique. Now it's not. The question is: Is this a corrupt database or does Keepass 2 allow duplicate UUIDs? (Keepass 2 doesn't complain and doesn't seem to fail in any way because of it.)
If this is a corrupt database: Is there a simple way how users can fix their databases?
If this is allowed, I will modify my app of course...
(Background: It seems that all these databases were edited or created with Minikeepass on iOS.)
UUIDs must be unique. KeePass relies on this in various places (synchronization, ...).
I took great care of ensuring the uniqueness of UUIDs in KeePass (e.g. in debug mode, it checks the UUID uniqueness each time a database is saved or synchronized). Anyway, if you find a way to create entries/groups with duplicate UUIDs using KeePass, please let me know and I'll fix it.
In order to rebuild a database containing duplicate UUIDs, I'd suggest the following: create a new database, go 'File' -> 'Import', select 'KeePass KDBX (2.x)' as format, choose the corrupted database file, click [OK], and select 'Create new IDs' as import behavior.
thanks for your answer and your suggestions how to fix the database.
For reference: I have filed a bug at the MiniKeePass website (https://github.com/MiniKeePass/MiniKeePass/issues/311) as it seems that these database were all created with that app.
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.