This is related to the change made in f06ab027efd2 (rev-list: allow cached objects in existence check). That patch seemed designed to allow the workflow where the empty tree is missing from the object store, so `git cat-file -e 4b825dc642cb6eb9a060e54bf8d69288fbee4904` and `git rev-list --objects 4b825dc642cb6eb9a060e54bf8d69288fbee4904` both return success even when the object is not physically present. However, in the same situation: $ git fsck [...] missing tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 I'm not sure if this is the intended behavior (the tree is indeed missing, so in some sense, this is reasonable). But it seems somewhat confusing that it disagrees with the interrogation commands.