What does Windows error code 4394 (ERROR_REPARSE_TAG_MISMATCH) mean?

 
Previous Next
ERROR_REPARSE_TAG_INVALID ERROR_REPARSE_POINT_ENCOUNTERED

ERROR_REPARSE_TAG_MISMATCH

The supplied tag does not identify the existing reparse point

Windows requires the tag supplied to a get-modify-delete workflow to match the tag currently stored on the object. This prevents an application that expects one reparse format from interpreting or deleting another. The error commonly appears when a path changed between inspection and modification or when code hard-codes a tag instead of reading the object first.

Open the reparse object itself, call FSCTL_GET_REPARSE_POINT, and use the returned tag for any authorized modification or deletion. Recheck after races involving rename, placeholder conversion, symbolic-link replacement, or provider view changes. A tag mismatch is not fixed by changing only the payload; the caller must understand and own the actual format now attached to the file or directory.

What to inspect

  • Read the current tag through the same object handle.
  • Check for replacement races between inspection and update.
  • Do not delete a point whose tag belongs to another provider.

References


Looking for a different code? Search another status or error code.