As a user of this API, I would find it very surprising that the sync and async versions come from different sources of truth. In my opinion there should be consistent behavior in the face of exceptional circumstances, like someone modifying the filesystem from outside this module