Cause #1: Stale IKE Service State
What's actually happening here is that the IPSec Policy Agent or the IKE service has cached a broken negotiation state. If you've been fiddling with VPN settings, certificates, or firewall rules recently, the service can hold onto a half-done session and refuse to process new ones. This is the single most common reason I see 0x3605 pop up — it's not a config problem, it's a memory problem.
You'll typically hit this after a Windows update (especially on Windows 10 21H2 and Windows Server 2019) or after toggling the VPN connection on and off a few times. The fix is almost stupidly simple.
- Open an elevated PowerShell or Command Prompt.
- Run these commands in order:
net stop policyagent
net stop ikeext
net start ikeext
net start policyagent
The reason step 3 works is that stopping both services clears the in-memory state, but you need to start them in the right order — ikeext first because policyagent depends on it. If you start policyagent first, it'll just fail again with the same error. Don't skip the stops; a simple restart of the whole machine sometimes works, but this is faster and doesn't require a reboot.
After the services are back up, try your VPN or IPsec connection again. If the error's gone, you're done. If not, move on to the next cause.
Cause #2: Certificate Trust or Preshared Key Mismatch
If restarting didn't help, the error payload is likely being rejected because of a security credential problem. The IKE negotiation sends a certificate or a preshared key as part of the payload, and if the other side can't validate it, you get exactly this error code. The wording "error processing the error payload" is a bit of a red herring — it's not about the payload itself, it's about the authentication material inside it.
Common triggers: you replaced a certificate on the VPN server, the client still has the old one, or someone typed a preshared key with a trailing space. Also, if you're using machine certificates and the root CA isn't in the Trusted Root Certification Authorities store on both ends, IKE will fail with 0x3605.
- Check the preshared key first — in the VPN client settings, retype it manually. Trailing spaces are invisible and evil.
- If you use certificates, open
certlm.msc(for local machine) and verify the certificate is valid and the root is trusted. - On the server side, ensure the root CA certificate is also in the client's Trusted Root store. If it's missing, export it from the server and import it on the client.
Also, look at the Security event log (Event Viewer → Windows Logs → Security) for event ID 4653 or 4654 around the time of the error. They'll give you the exact reason for the payload rejection — usually something like "The certificate is not trusted" or "The preshared key is invalid." That saves you from guessing.
Cause #3: Firewall Blocking UDP 500 and 4500
Less common, but I've seen it. IKE uses UDP port 500 for the initial negotiation, and if that's blocked, the error payload never arrives at its destination, but the local side still tries to process it and throws 0x3605. This happens a lot on Windows Server Core installations where the default firewall rules for IPsec are disabled.
Check your firewall inbound rules. You need to allow UDP 500 and also UDP 4500 (for NAT traversal). The Windows built-in rules are usually named "Routing and Remote Access" or "IPsec IKE and AuthIP." If they're disabled, enable them.
netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=yes
What that command does is enable all the IPsec-related rules in one shot. The group name is a localization key, but it works on English and most other locales. If you're not happy with a blanket enable, you can create targeted rules:
netsh advfirewall firewall add rule name="IKE UDP 500" dir=in protocol=udp localport=500 action=allow
netsh advfirewall firewall add rule name="IKE UDP 4500" dir=in protocol=udp localport=4500 action=allow
One trap: if you're behind a NAT, your router also needs to forward those ports if the VPN server is inside the network. That's outside Windows' control, but it's a frequent gotcha.
Quick-Reference Summary
| Cause | Fix | Verification |
|---|---|---|
| Service state | Restart policyagent & ikeext | Error gone after connection attempt |
| Certificate/key mismatch | Retry preshared key, check trust chain | Event 4653 shows valid auth |
| Firewall blocking | Enable UDP 500/4500 rules | Packet capture shows IKE packets |
That's it. Most of the time you'll land on cause #1 and be done in under a minute. If not, cause #2 is where the real detective work happens. Firewall issues are the least frequent, but they're worth ruling out before you blame the VPN server.