From another thread:

Quite possible there are situations where it fails to recover the lost information and does something annoying. But like I said, such situations can already happen

Maybe, there are some simple ways to harden git-annex against possible weirdness following abrupt interruptions? E.g. using flag files to detect when a prior operation got interrupted, and rebuilding the sqlite dbs from git data. Or tagging sqlite records with the timestamp of their creation, and not using the data if the relevant worktree files got modified since then.

closing per comment --Joey