0XC01C0020

STATUS_FLT_NO_WAITER_FOR_REPLY (0xC01C0020) Fix

Windows Errors Intermediate 👁 3 views 📅 Jun 2, 2026

Annoying filter manager error. Usually a corrupted driver or stale minifilter. The fix: rebuild driver cache and remove broken filters.

This error is a pain — a filter driver sends a reply but nobody's listening.

What's actually happening here is the Windows Filter Manager (fltmgr.sys) queues a message to a minifilter, gets a reply back, but the original thread that sent the message has already bailed. That mismatch crashes the system or hangs an application. It's not a hardware issue—it's almost always a corrupt driver cache or a minifilter that loaded partially and then died (common after a failed update or antivirus removal).

The Straight Fix: Rebuild Driver Cache & Unload Dead Filters

Skip all the chkdsk and sfc nonsense—they won't touch filter drivers. The real fix takes about 10 minutes:

  1. Boot into Safe Mode with Networking. Restart your PC, hit F8 (or Shift + Restart from login screen), choose Safe Mode with Networking. This loads only essential drivers, so the bad filter won't interfere.
  2. Open an elevated Command Prompt. Right-click Start > Terminal (Admin) or cmd.exe as admin.
  3. List all registered minifilters: fltmc instances — this prints every filter instance, its volume, and its status. Look for any with "Stopped" or "Unloading" that shouldn't be. Anti-malware filters (like Sophos, McAfee, or old Avast leftovers) are the usual suspects.
  4. Unload the bad filter. If you see, say, "Sophos_AntiVirus" in a weird state, run fltmc unload Sophos_AntiVirus. If it refuses, note the filter's altitude (the number in the list) and use fltmc detach <altitude> C: to force it off the C: volume.
  5. Rebuild the driver cache. Still in the admin command prompt: pnputil /delete-driver /uninstall /force * — this nukes all third-party driver packages in the store. Yes, it sounds drastic, but Windows will rebuild the store from scratch on next boot, pulling clean copies from System32. The reason step 5 works is that corrupted driver INF files stay cached even after uninstalling the minifilter; pnputil wipes those stale entries.
  6. Clean the pending driver queue: dism /online /cleanup-image /revertpendingactions — this clears any half-installed driver updates that might be causing the mismatched waiter.
  7. Reboot normally. Windows will rebuild the driver store on boot. Test by running something that triggered the error before (e.g., opening a file on a network share, launching a specific application).

Why This Works

The filter manager sends a synchronous request to a minifilter, expecting a reply on the same thread. If the minifilter's dispatch routine crashes or gets unloaded mid-operation, the thread's wait state gets orphaned. The error code 0xC01C0020 is the kernel's way of saying "I have the reply but nowhere to send it." Rebuilding the driver cache removes stale binaries that reference orphaned instance contexts, and unloading the filter forces the system to re-register clean instances. The pnputil step is the real hero—it forces Windows to re-enumerate all drivers from the hardware IDs, skipping any corrupted INF that was left behind by a sloppy uninstaller.

Less Common Variations

Sometimes the error pops up only during backup or volume snapshot operations. In that case, the problem is a specific filter tied to Volume Shadow Copy (VSS). Run fltmc filters | findstr "VSS" — if you see "FileSystemSnapshot" or "VSSFilter" in a stopped state, unload it with fltmc unload FileSystemSnapshot. This is common after a failed backup software upgrade (I've seen it with Acronis True Image 2021).

Another variation: the error appears in the System event log but no crash happens. That's a sign of a filter that's running but returning inconsistent status codes. Check the Event Viewer under Applications and Services Logs > Microsoft > Windows > FilterManager for a specific instance name. Then unload that instance via fltmc unload <InstanceName>. If it won't unload because it's "in use," you need to identify the process holding it: handle.exe -a | findstr fltmgr (from Sysinternals) will show you the PID. Kill that process first.

Rare but possible: the error happens in a virtual machine (Hyper-V or VMware) after a host-side storage change. Here, the fix isn't inside the guest—it's on the host. Rescan the storage controller: diskpart then rescan. This forces the host to propagate correct filter bindings to the guest.

Prevention

Don't let antivirus or backup software leave leftovers when you uninstall. Use their official removal tools, not just Add/Remove Programs. For Sophos, run the Sophos Clean tool. For McAfee, use MCPR. For Avast, run avastclear.exe. These tools do what the uninstaller should have done: delete minifilter registrations from the registry under HKLM\SYSTEM\CurrentControlSet\Services\<FilterName> and HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System\Filters.

Also, keep your filter manager updated. Microsoft pushes updates via Windows Update under "Driver updates" — don't hide those. The filter manager (fltmgr.sys) in Windows 11 22H2 had a bug that made it more susceptible to this error; it was fixed in KB5025239. Check your build version: winver — if you're below 22621.1778, apply that update.

Finally, if you use third-party security software, set a system restore point before installing updates. That way, if a new filter driver breaks things, you can roll back the driver cache without the pnputil nuke. I've got a scheduled task that creates a restore point every Sunday for exactly this reason.

Was this solution helpful?