Fix 0X0000094D: Illegal Source Path When Copying Files
That 'illegal source path' error usually means Windows can't read the file path you gave it. Here's the quick fix and the deeper ones.
What the Hell Is 0X0000094D?
You're copying a file or folder, and Windows throws up 0X0000094D — The source path is illegal. I've seen this pop up on Windows 10 and 11 mostly, but also on Server 2016 and 2019. The error means the system can't resolve the path you're telling it to use. It's not a corrupt file or a hardware failure — it's a path issue. Ninety percent of the time, the culprit is either a special character in the folder name or a path that's too damn long for Windows to handle.
I had a client last month whose entire print queue died because of this — their backup script was failing silently because a folder named "Photos (2020) - Final" had parentheses and spaces. Once I renamed the folder to just "Photos2020Final", the whole backup ran fine. So let's get this fixed.
30-Second Fix: Check for Special Characters and Rename
This is the fix you try first. No tools needed, no command line. Just look at the source path you're using. If it contains any of these, that's your problem:
- Spaces (unless quoted properly)
- Parentheses
( ) - Ampersand
& - Hash
# - Square brackets
[ ] - Any Unicode characters (like emojis or accented letters)
The fix: Rename the source folder or file to something plain. Use only letters, numbers, underscores, and hyphens. For example, change Client's Files (2020) & 2021 to ClientFiles_2020_2021. Then try the copy again. If that doesn't work, move on.
5-Minute Fix: Shorten the Path or Use the 8.3 Name
Windows has a path length limit of 260 characters (that's the MAX_PATH limitation). If your source path is longer than that, you'll get 0X0000094D even if the file is perfectly fine. This is especially common with deep folder structures like C:\Users\JohnDoe\Documents\Work\Projects\2023\ClientA\Deliverables\Final\Version2\Revised\.
Option A: Move the file higher up
Copy the file to a shorter path, like C:\Temp\, then copy from there. Drastic but quick.
Option B: Use the 8.3 short filename
Old Windows creates short filenames like DOCUME~1 for long paths. You can see them by opening a command prompt and running:
dir /x
Look for the short name in the second column. Use that instead of the full path. For example, if Documents shows as DOCUME~1, then C:\Users\JohnDoe\DOCUME~1\Work\... might get under the limit. This is a band-aid, but it works.
Option C: Enable long paths in Group Policy (Windows 10 Pro/Enterprise)
Go to Local Group Policy Editor → Computer Configuration → Administrative Templates → System → Filesystem. Enable Enable Win32 long paths. Restart. This only works for new copies, not existing ones. It's not bulletproof, but it helps.
15+ Minute Fix: Registry Hack or Move to a Different Tool
If the simple stuff didn't work, the problem is deeper. Maybe the path has a null character somewhere, or there's a hidden Unicode character you can't see. Here's the brute-force approach.
Step 1: Use Robocopy (the command-line workhorse)
Robocopy handles long paths better than File Explorer or the basic copy command. Open an elevated Command Prompt and run:
robocopy "C:\your\long\source" "D:\destination" /E /COPY:DAT
The /E copies subdirectories, and /COPY:DAT copies data, attributes, and timestamps. Robocopy will often succeed where File Explorer fails. If you still get an error, note the exact file that fails — that's your culprit.
Step 2: Find and remove hidden characters
If you suspect a hidden character, use PowerShell to get the raw bytes of the path:
$path = "C:\your\path"
[System.Text.Encoding]::UTF8.GetBytes($path) | ForEach-Object { Write-Host $_.ToString("X2") -NoNewline }
Look for any non-standard byte values. A normal space is 20, a normal letter A is 41. If you see something like C2A0 (non-breaking space), that's your problem. You can then delete the file using its shortname or by booting into a Linux live USB and removing it there. I've done this for clients who had filenames with zero-width Unicode characters that Windows refused to touch.
Step 3: Registry tweak to bypass MAX_PATH (at your own risk)
This hack forces Windows to accept longer paths. Open Regedit and go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled
Set it to 1. Reboot. This works on Windows 10 version 1607 and later, and Windows 11. But know this: some older apps still won't care about this setting. File Explorer might still choke. You'll mostly see the benefit in command-line tools and newer software.
What If Nothing Works?
If you're still stuck, the file or folder is likely corrupted at the filesystem level. Run a chkdsk /f on the drive, then try again. If that fails, use a third-party tool like Unlocker or LockHunter to force-delete the source file, then recreate it. I've had to do this twice in 10 years — it's rare, but it happens. Don't waste more than 30 minutes on this. The file isn't worth it.
Pro tip: Always back up data before messing with the registry or deleting files. You've been warned.
Was this solution helpful?