Quick fix: Large file copies appear to hang at 99% because Windows is flushing the write buffer to disk — the data is still being written, even though the progress bar shows complete. Wait 30 seconds to 5 minutes. To eliminate the hang: open Device Manager → Disk drives → [target drive] → Properties → Policies tab. Switch from Better performance to Quick removal (for removable drives) to disable write caching.
You copy a 50 GB file. Windows shows progress: 30%, 60%, 90%, 99% — and stops. The bar stays at 99% for minutes. The copy isn’t hung; Windows is finishing buffered writes that were queued during the visible progress. The fix is patience or disabling write caching.
Affects: Windows 11 (and Windows 10) with write caching enabled.
Fix time: ~5 minutes (configuration); the wait is what it is.
What causes this
Windows uses write caching: when an app writes to disk, the data goes to RAM first (cache), and the cache flushes to disk asynchronously. The progress bar shows what’s queued, not what’s physically written. So at 99%, the visible operation may be 100% queued but only 60% written. The bar stops moving while the remaining 40% physically writes.
For external USB drives, the cache holds multiple GB. The 99% hang is unavoidable unless you disable caching (which slows visible copy speed but ensures “100%” means truly complete).
Method 1: Wait it out (acknowledge what’s happening)
For most users, this is the right answer.
- Don’t interrupt. Force-closing the dialog or ejecting the drive can corrupt the file.
- The actual disk activity LED shows whether writes are still happening. If LED is solid or blinking, writes are in progress.
- Wait until the dialog closes on its own. Typical duration: 30 seconds for fast USB 3 SSD; 5 minutes for slow USB 2 HDD; 10+ minutes for very slow USB 1.x or networked drives.
- For really hung dialogs (>15 minutes with no LED activity): force-close the dialog. Verify the file was copied correctly: compare size, run hash check.
- For built-in copy dialog vs. file managers: third-party tools like FreeFileSync show real-time data transferred and remaining, which is more accurate than Windows’ estimate.
This is the patient answer.
Method 2: Disable write caching for instant “truly 100%” reporting
For workflows where you need exact completion.
- Open Device Manager.
- Expand Disk drives. Right-click target drive → Properties → Policies tab.
- For removable drives (USB external):
- Quick removal: disables write caching. Slower visible copy but progress bar matches reality.
- Better performance: enables caching. Faster visible copy but progress bar shows queued, not flushed.
- For internal drives:
- Enable write caching on this device: tick (default).
- Untick to disable caching entirely. Internal drives become slower; not recommended for primary use.
- Trade-off: Quick removal means you can yank the drive without “Safely Remove Hardware” (data already flushed). But every write is slower.
- For USB drives used in mixed contexts: keep Better performance (default) and always use Safely Remove before unplug.
This is the right path for workflows requiring precise progress reporting.
Method 3: Use a faster transfer tool
For when 99%-hang is impacting workflow.
- Install TeraCopy from codesector.com (free for personal use).
- TeraCopy replaces Windows’s copy dialog with one that reports actual bytes transferred and bytes verified. The progress bar reflects reality, not buffer state.
- Alternative: FastCopy from fastcopy.jp — open source, very fast multi-threaded copy with accurate progress.
- For PowerShell-based copy with progress:
Copy-Item -Path "source" -Destination "dest" -VerboseVerbose output shows each file as copied.
- For network copies:
robocopy "source" "dest" /E /MT:8. Multi-threaded, robust against network interruptions. Resumes from where it left off if interrupted. - For SSD-to-SSD copies of huge files: built-in Windows copy is usually fine because SSD writes are fast. The 99% hang is more visible on slower drives.
This is the right path for power users who want better progress reporting.
How to verify the fix worked
- Copy a large file. After dialog closes, verify file is intact: right-click → Properties → size matches the original.
- Compare hashes for integrity:
Get-FileHash "source.iso" -Algorithm MD5 Get-FileHash "dest.iso" -Algorithm MD5Both should match.
- If using Quick removal mode: the dialog closes when copy is genuinely complete — no extra hang.
If none of these work
If copies regularly fail at 99% (not just hang — actually fail with error), the cause is different: Filesystem corruption on target drive: run chkdsk D: /f on the target. If errors found, the drive’s file system is damaged. USB cable or port failure: try a different USB port, ideally rear of PC (more stable than front). Try a different cable. Drive overheating: extended large transfers heat up SSDs. Touch the drive enclosure — if hot to touch, let it cool, retry. For network shares: SMB connection drops mid-transfer. Use robocopy with retry: robocopy "src" "dest" /E /R:5 /W:30. Retries up to 5 times with 30-second waits. For files that fail at the exact same percentage repeatedly: bad sector at that file position on source. Read source from a different copy or use backup. For files larger than 4 GB on FAT32 drives: FAT32 max file size is 4 GB. Reformat target to NTFS or exFAT.
Bottom line: 99% “hang” is write cache flushing — wait it out. For accurate progress, use Quick removal mode (disables cache) or TeraCopy/FastCopy.