0XC0220038

Fix STATUS_FWP_INCOMPATIBLE_AUTH_CONFIG (0XC0220038)

IPsec auth config mismatch kills connections. Check Windows Firewall rules for conflicting auth methods. Fix: align the authentication type across all rules.

Quick answer

Delete or fix the IPsec rule where the authentication method doesn't match the rule's expected type (Kerberos vs. certificate vs. preshared key). Run netsh advfirewall consec show rule name=all to find the bad rule.

Why this happens

This error means Windows Firewall found an IPsec connection security rule where the authentication configuration doesn't match the rule's authentication type. The culprit is almost always a rule that sets Auth1 (main mode) to Kerberos but the rule's AuthType says certificate. Or you've got two rules that overlap and one expects preshared key while the other expects machine certificate. I've seen this most often on Windows Server 2019 after someone bulk-imports firewall rules from a different system. It also pops up on Windows 10/11 when someone uses third-party VPN software that creates conflicting IPsec rules.

The error code itself is part of the Windows Filtering Platform (WFP). The system checks every IPsec rule against its configured authentication before allowing the connection. When they don't match—boom, you get 0XC0220038.

Fix steps

Step 1: Identify the bad rule

Open an elevated PowerShell or Command Prompt and run:

netsh advfirewall consec show rule name=all verbose

Look for rules where Auth1 says something like Computer (Kerberos) but AuthenticationType is 2 (which means certificate-based). That mismatch is your problem.

Here's a quick mapping for AuthenticationType:

ValueMeaning
1Preshared key
2Certificate
3Kerberos
4Advanced (NTLM/EAP)

Step 2: Fix the rule

You've got three options:

  1. Delete the rule if it's not needed: netsh advfirewall consec delete rule name="Your Rule Name"
  2. Reset the rule's auth type to match. For example, to set it to Kerberos: netsh advfirewall consec set rule name="Your Rule Name" new auth1=computerkerb
  3. Disable the rule temporarily: netsh advfirewall consec set rule name="Your Rule Name" new enable=no

Step 3: Verify the fix

Run the same verbose command again. The AuthenticationType should now match Auth1. Then test your connection. If it works, you're good. If not, move to alternative fixes.

Alternative fixes if step 2 fails

Check for duplicate rules

Use PowerShell to find overlapping rules:

Get-NetIPsecRule | Where-Object {$_.Phase1AuthSet -ne $null} | Group-Object -Property Phase1AuthSet | Where-Object Count -gt 1

That'll show you authentication sets used by multiple rules. If they have different auth types, you've got a conflict. Remove any duplicate rules using Remove-NetIPsecRule.

Reset Windows Firewall (last resort)

If nothing else works, reset the firewall rules to defaults:

netsh advfirewall reset

Be careful—this nukes all custom rules. Backup your rule set first with netsh advfirewall export "C:\backup.wfw". Then re-import only the rules you need.

Prevention tip

Never mix authentication types in the same rule group. If you use Kerberos on your domain-joined machines, stick with it. Don't add a preshared key rule for the same subnet unless you disable the old one. I always create separate connection security rule groups for different auth methods—one for Kerberos, one for certificates, one for preshared keys. Label them clearly in the firewall console so the next admin doesn't curse your name.

Related Errors in Windows Errors
0X80290206 Fix TBSIMP_E_DUPLICATE_VHANDLE (0X80290206) in Windows 0XC0000503 STATUS_CALLBACK_BYPASS 0xC0000503: Fix It Now 0X0000015E Fix ERROR_FAIL_NOACTION_REBOOT (0X0000015E) – Reboot Required 0X00002144 FIX: ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER (0X00002144) – Global Groups Can't Nest Local Groups

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.