STATUS_OBJECTID_EXISTS: When Windows Refuses to Set an Object ID
Happens when you try to assign a unique object ID to a file or folder that already has one. Common in backup scripts or DFS replication.
When This Error Hits You
You're running a backup script or syncing files via DFS Replication, and bam — error code 0XC000022B pops up. Maybe your robocopy command throws it, or a PowerShell script trying to set a unique identifier on every file. The exact trigger: you're trying to assign an object ID to a file or folder that already has one. This happens most often in environments where files get moved or copied across NTFS volumes, like during a file server migration or when archiving data. Had a client last month whose nightly backup to an external drive kept failing on one particular folder — turned out every file in there already had object IDs from a previous backup run.
What's Actually Going On
Object IDs are little metadata tags NTFS attaches to files and folders. They're like a unique serial number, used by Distributed Link Tracking and other Windows services to keep file links working even if you move or rename the file. The problem: each file can only have one object ID. Try to set a second one, and Windows throws 0XC000022B. The root cause is almost always either:
- A backup or sync tool trying to stamp a fresh ID on every file, regardless of existing ones.
- DFS Replication creating conflicting IDs when the same file exists in multiple replicas.
- Manual scripts that call
fsutil objectid setwithout checking first.
This isn't a data corruption issue — the file's content is fine. It's just a metadata conflict.
How to Fix It
Skip the Windows GUI — there's no checkbox anywhere for object IDs. You'll use fsutil from the command line. Here's the step-by-step:
- Identify the files causing the error. Look at your backup or script logs. Note the full file path. Usually it'll be something like
D:\Backups\ProjectX\file.txt. - Open an elevated Command Prompt. Right-click Command Prompt and pick "Run as administrator".
- Check if a file has an object ID. Run:
If it returns a hex ID string, that file already has one.fsutil objectid query "D:\Backups\ProjectX\file.txt" - Remove the existing object ID. This clears it so you can set a new one:
No confirmation prompt — it just removes it.fsutil objectid delete "D:\Backups\ProjectX\file.txt" - Retry your backup or script. The error should vanish. If you're using a robocopy with the
/COPYALLflag, it'll re-create the object ID cleanly.
For folders, same commands work. If you have hundreds of files, script it with a loop:
for /r "D:\Backups\ProjectX" %f in (*) do fsutil objectid delete "%f"
Run that from cmd (double the % signs in a batch file).
When the Fix Doesn't Stick
If the error comes back, check these three things:
- Is the file locked? Another process might hold a handle on it. Use
handle.exefrom Sysinternals orlocksmith(Windows 10/11) to find the culprit. - Are you running the command on the right drive? Object IDs only exist on NTFS volumes. If you're accidentally working on a FAT32 or exFAT drive,
fsutilwon't work — and that error might be something else entirely. - Does your backup tool have a switch to skip object IDs? Robocopy's
/COPYALLincludes object IDs. Swap to/COPY:DAT(Data, Attributes, Timestamps) to avoid the conflict. Same logic applies to Veeam or other backup software that mirrors NTFS metadata.
In rare cases, a corrupted NTFS metadata area can cause object IDs to appear on files that were never manually assigned one. Run chkdsk /f on the volume to fix that. But 9 times out of 10, it's just a backup script being too aggressive.
Was this solution helpful?