0X80190031

Fix STATUS_CANT_RECOVER_WITH_HANDLE_OPEN (0x80190031)

Windows Errors Intermediate 👁 1 views 📅 Jun 8, 2026

This error means a file can't be recovered because another program still has a handle open on it. We'll start with easy closes and move to force removals.

Why this error shows up

I've seen this error mostly on Windows 10 and 11 when you're restoring a file from backup or recovering a deleted file using software like Recuva, ShadowExplorer, or Windows File Recovery. The OS refuses because some process still has a dangling handle to that file—like a backup agent, antivirus, or even a crashed Explorer shell. It's infuriating because the file is right there but Windows says nope.

This tripped me up the first time too. You think you closed everything, but handles can persist even after the app window is gone. Let's fix it.

30-second fix: Close every app that could touch the file

Sounds obvious, but most people skip a step. Don't just close the obvious program.

  1. Save your work, then close all open windows—browsers, text editors, media players, file explorers.
  2. Open Task Manager (Ctrl+Shift+Esc). Look for any background processes that might have that file open. Common culprits: explorer.exe, SearchIndexer.exe, OneDrive.exe, antivirus scanners, backup tools like VSSVC.exe.
  3. Right-click and End task on anything suspicious. If you see explorer.exe, kill it (don't worry, it restarts).
  4. Now try your recovery again.

If that worked, great. You're done. If not—something deeper is holding the handle.

5-minute fix: Use Sysinternals Handle or Process Explorer

This is the real fix. Microsoft's free Handle tool (part of Sysinternals) tells you exactly which process has the file locked. I keep Process Explorer installed on every machine I touch.

  1. Download Handle or Process Explorer from Microsoft.
  2. Extract the zip to a folder, say C:\Tools\.
  3. Open Command Prompt as Administrator (right-click Start > Command Prompt (Admin) or Terminal Admin).
  4. Run:
    handle -a -u "C:\Path\To\Your\File.ext"
    Replace with the actual file path from your recovery error. The -a shows all handles, -u shows the user.
  5. You'll see output like:
       File  \Path...  pid: 1234  type: File   user: YourUser
    The pid number is the process ID holding the handle.
  6. In Task Manager, find that PID (add the PID column under Details tab). Right-click and End task.

If it's a system process like svchost.exe, you can't just kill it. Instead, note the PID and we'll force close the handle next.

15+ minute fix: Force close the handle with Handle command

For stubborn system processes or services, you can close the specific handle without killing the whole process. This is safe for most non-critical handles.

  1. Run Handle again but with -c flag and the handle value. First get the full handle list:
    handle -a -p <PID>
    Replace <PID> with the process ID from earlier.
  2. Find the line for your file. It shows a hex handle value like 0x1234.
  3. Now close it:
    handle -c 0x1234 -p <PID> -y
    The -y skips confirmation. This disconnects the handle without crashing the process.
  4. Try your recovery again immediately.
Warning: Closing a handle on a critical system process (like csrss.exe or winlogon.exe) can crash your system. Stick to user-mode processes like explorer.exe, SearchIndexer.exe, or third-party apps.

Still stuck? Last resort—reboot and disable startup apps

If none of the above worked, some background service reopens the handle as fast as you close it. Restart your PC, then immediately hold Shift while clicking Restart to boot into Safe Mode. In Safe Mode, run your recovery tool. Safe Mode loads minimal drivers and services, so the handle-holding process often isn't running.

Also check your startup programs: run msconfig, go to Startup tab, disable everything, reboot, and retry. This isolates if a startup app is the culprit.

I've used this on Windows 11 23H2 and it's worked every time when the handle was from a pesky OneDrive sync or a stuck Windows Search index. Don't give up—you're one tool away from that file.

Was this solution helpful?