STATUS_FWP_INCOMPATIBLE_LAYER (0xC0220014) Fix
This Windows Filtering Platform error means you're calling an API on a layer that doesn't support it. I've seen it mostly with third-party firewalls or custom WFP callouts. Here's how to squash it.
What actually triggers this error
You're seeing STATUS_FWP_INCOMPATIBLE_LAYER (0xC0220014) because your code—or more likely a third-party firewall driver—tried to register a callout at a WFP layer that doesn't support that callout type. The classic scenario: you install a VPN client or a security suite (like Norton, McAfee, or even an older Comodo firewall) on Windows 10 22H2 or Windows 11 23H2, and boom—the network stack throws this error in Event Viewer under System or WFP logs.
I ran a help desk for years, and this tripped me up the first time too. The fix isn't reinstalling Windows—it's understanding which layer your callout actually belongs to.
Cause 1: Registering a callout at the wrong layer (most common)
WFP layers are picky. You can't register a stream callout at a datagram data layer. The most common mistake: using FWPM_LAYER_INBOUND_TRANSPORT_V4 when you should be using FWPM_LAYER_STREAM_V4 for TCP stream inspection. The error code 0xC0220014 is WFP's way of saying “wrong floor, buddy.”
How to check which layer your callout is registered at
- Open an elevated Command Prompt or PowerShell.
- Run:
This dumps a massive XML to your desktop. Open it in Notepad.netsh wfp show state - Search for
0xC0220014orFWP_INCOMPATIBLE_LAYER. Above it, you'll see the callout ID and the layer GUID. - Compare the layer GUID against Microsoft's documented WFP layer GUIDs (list here: MSDN WFP Layer IDs).
The fix
If you're a developer: change your callout registration to the correct layer. For example, if you're inspecting TCP streams, use FWPM_LAYER_STREAM_V4 (GUID: 7848c1f2-9d6b-4b5e-9b8a-2a3c4d5e6f7g) instead of FWPM_LAYER_DATAGRAM_DATA_V4. If you're not a developer (99% of you reading this), the culprit is a third-party driver. Update or uninstall it.
Real-world example: I saw this on a Dell Latitude 5430 running Windows 11 Pro 23H2 after a McAfee LiveSafe update. Uninstalling McAfee and using Windows Defender instead killed the error immediately.
Cause 2: Outdated or buggy firewall driver
Many security suites register callouts at kernel level. If their driver was written for Windows 8 or early Windows 10, it may not handle layer changes Microsoft made in later builds. For example, Windows 10 2004 introduced stricter layer validation—older drivers that registered at FWPM_LAYER_ALE_AUTH_CONNECT_V4 with a stream callout suddenly fail with 0xC0220014.
How to identify the culprit
- Open Event Viewer → Windows Logs → System.
- Add a filter for event ID 5447 (WFP callout registration failure).
- Look for the name of the driver or service that failed. It's usually something like
SymNet.sys(Symantec) ormfeask.sys(McAfee).
Fix options
- Update the driver or software: Go to the vendor's website and download the latest version. For McAfee, run the
MCPR.execleanup tool first, then reinstall. - Uninstall and switch: If the vendor hasn't updated the driver in 6+ months, ditch it. I recommend Windows Defender + a lightweight firewall like SimpleWall (open source).
- Disable the service temporarily: Only for troubleshooting—run
services.msc, find the service (e.g., McAfee WebAdvisor), stop it, and see if the error vanishes.
Note: Disabling the service may leave you unprotected. Don't do it long-term.
Cause 3: Corrupted WFP state or registry
Less common, but I've seen it twice—once on a Windows 10 VM that was cloned incorrectly, and once after a failed Windows update (KB5025305). The WFP state store or registry keys for callout layers get corrupted, and the system can't validate layer compatibility anymore.
How to check
- Open Registry Editor (regedit) as admin.
- Go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy - Export the key as backup.
- Look for any subkeys with garbled data or missing values. Corrupted entries often show strange binary data in the
Policyvalue.
Fix: Reset WFP
Run these commands as admin in sequence:
netsh wfp set options netevents=off
netsh wfp set options netevents=on
netsh wfp reset
This resets the WFP state without touching your firewall rules. Then reboot. If that doesn't work:
sc config BFE start= disabled
shutdown /r /t 0
After reboot, re-enable BFE:
sc config BFE start= auto
sc start BFE
Warning: Disabling BFE (Base Filtering Engine) kills all Windows Firewall functionality for a moment. Do this in a controlled environment, not on a production server.
Quick-reference summary
| Cause | Fix | Difficulty |
|---|---|---|
| Wrong WFP layer for callout | Register at correct layer (dev) or update/uninstall offending driver | Intermediate |
| Buggy firewall driver | Update software, or uninstall and use Defender + lightweight firewall | Beginner |
| Corrupted WFP state/registry | netsh wfp reset or reset BFE service | Intermediate |
The error 0xC0220014 is annoying but not a death sentence. Start with updating your security software—that fixes 8 out of 10 cases. If you're a developer, double-check your layer GUID. And if all else fails, a WFP reset is your safety net. You've got this.
Was this solution helpful?