When Does This Error Pop Up?
You're setting up a site-to-site VPN or a client VPN connection on Windows (usually Server 2019/2022 or Windows 10/11). The connection starts—you see it trying to establish—then it fails with error 0x00003608. The exact message says something like "Error processing the transform payload." I've seen this most often when someone tries to connect a Windows server to a third-party firewall—like a FortiGate, Palo Alto, or Cisco ASA—and the encryption algorithms don't line up.
What Actually Causes It?
It's an IKE phase 2 mismatch. Phase 1 (main mode) goes fine—both sides agree on how to authenticate. Then phase 2 (quick mode) starts, and Windows says "I want to use AES256-SHA1 with a 1-hour lifetime," but the other side says "I only do AES128-SHA256 with a 2-hour lifetime." Windows tries to process that transform, can't match it, and throws 0x00003608. The key thing: it's almost never a firewall blocking the traffic—it's always a settings clash.
Fix It: Step by Step
Here's how I fix this. I've done this for maybe a dozen clients, and it works every time.
Step 1: Check the VPN Settings on Both Sides
Open the VPN connection properties on the Windows side. For a site-to-site connection, that's usually in Routing and Remote Access or on the VPN server itself. For a client connection, it's in the network settings under VPN. Write down these values: encryption algorithm, integrity (hash) algorithm, DH group, and lifetime. Then log into your firewall or remote VPN device and find its phase 2 proposals. They need to match exactly. If one side says "AES256" and the other says "AES128", that's your problem.
Step 2: Match the Transform Proposal
If you have control over the remote device, change its phase 2 proposal to match Windows. Windows is picky—it usually defaults to AES256, SHA1, DH group 2, with a 480-minute (8-hour) lifetime. If you can't change the remote side, you need to customize Windows. Here's how:
- Open PowerShell as Administrator.
- Run:
netsh advfirewall consec show rule name=allto see existing connection security rules. - Find the rule for your VPN connection. If it's not there, you'll need to create a custom rule.
- Run this command to set the transform proposal (adjust values to match your remote device):
netsh advfirewall consec add rule name="MyVPNPhase2" endpoint1=any endpoint2=any action=requireinrequireout qmpfs=no auth1=computerkerb qmsecmethods=ESP:SHA1-AES128:60
That qmsecmethods part is what matters. It says ESP protocol, SHA1 integrity, AES128 encryption, and 60-minute lifetime. Change it to whatever the other side expects. Common combos: ESP:SHA256-AES256:120 or ESP:SHA1-3DES:60.
Step 3: Force a Restart of the IKE Service
After changing settings, restart the IKE service to clear old negotiations. Run in PowerShell:
Restart-Service IKEEXT -Force
Restart-Service PolicyAgent -Force
Then try the VPN connection again. It should go through now.
When It Still Fails
If the error comes back, check two things. First, verify the firewall on both sides isn't dropping UDP ports 500 and 4500. I had a client last month whose ISP was blocking VPN traffic. Second, confirm both sides are using the same authentication method—if Windows is trying to use a pre-shared key but the remote device expects certificates, phase 1 won't even finish, and you'll get a different error. But if you're stuck on this exact 0x00003608, it's always the transform payload. Don't waste time on other stuff.
Also, update your network drivers if you're on a client machine. An old Intel NIC driver can sometimes mess up IPsec offloading, causing this error. A driver update fixed it for one of my clients running Windows 10 22H2.