btrfs automatically validates checksums when data is read. If a checksum fails, instead of giving the corrupted file contents, the read will throw an I/O error. In result, it seems that git-annex fsck will not recognize the file as faulty, and will instead fail with a sha1sum parse error, without dropping the corresponding file as “bad”.
[[!format sh """
git annex fsck file
fsck file (checksum...)
sha1sum: .git/annex/objects/…: Input/output error
git-annex: sha1sum parse error
# End of transcript or log.
"""]]
### What version of git-annex are you using? On what operating system?