Most of the Hash Mismatch issues are identified through CAS.log “Hash does not match expected”.
There could be several reasons for Hash Mismatch issue such as explained below.
1. For Windows 2008 site servers, check whether the below setting are enabled in IIS. For a distribution point that is enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS, for WebDAV Behavior, set Allow hidden files to be listed to True. More Info
2. ConfigMgr 2007 clients may fail to download packages from a Server Share DP with a content hash mismatch error.There is a known issue with IIS 6.0 WEBDAV that occurs when the Virtual Directory points to the root of the drive as the path, such as Z:\. This causes our failure above. More info
3. Attempts to update or distribute a package to a Branch DP fails with HostingIncomplete and PDPHashMismatchEvent error. Every indication is that this is hash mismatch, however, testing shows that the hash matches, and the directory contents are exactly the same on the Source, DP, and BDP, the only indication of the hash mismatch is in the peerdpagent.log. More Info
4. SMSTS error “Hash could not be matched for the downloaded content”. When deploying a software package in SCCM 2007 via a Task Sequence, and that package contains files with names containing extended ASCII characters, the Task Sequence may fail with an error code 80004005. An example would be something like the Spanish word año where there’s a tilde over the ‘n.’ More Info
In my case, the issue was different. If I have a Hash Mismatch issue in the environment I always prefer to compare the size of packages in local DP and in the parent server ? (there could be some diff in size…may be in KBs or Bytes). Also, compare the PCK file size on both the servers?
1. Update the package and wait for 1 or 2 hours, depending upon the connectivity.
2. Check the CAS.log to confirm whether issue has resolved or not.
3. If “Not Resolved” then go to step 4.
4. Sometimes Hash Mismatch may happen because of some hidden files. To resolve that open up a command window in the root director that contains your package.
Type Dir /S /A:H and hit enter.
Type attrib -H /S.
5 . Update the package and wait for 1 or 2 hours, depending upon the connectivity. If issue still persists go to step 6.
6. Remove the package and wait for 1 0r 2 hours (ensure that the package is removed from the DP). Also, I would suggest you to remove PCK file related to that package.
7. Re distribute the package and check whether issue is resolved.
These steps should resolve most of the Hash Mismatch issues.
P.S – Download HashDir tool and More Details on Hash Mismatch – See, Link