When the hashing is in progress, we tell the server that our store hashes are correct. We were concluding that the hashing is in progress by checking if a hash value is null - which was incorrect because it can be null when an entry is missing. The solution was to introduce a flag to state sync specs telling if the hashing is still in progress.
https://linear.app/comm/issue/ENG-7990/state-sync-sometimes-doesnt-fix-the-state