When you see this error
You've set up QoS policies in Group Policy or locally with gpedit.msc. Maybe you're trying to prioritize VoIP traffic or limit background downloads. Everything looks right in the policy editor. But after a Windows update — specifically 22H2 — those policies stop working. You run gpupdate /force, still nothing. Event Viewer shows QoS_E_POLICY_APPLY_FAILED (0x806B0022). The network just ignores your rules.
I've seen this exact thing on maybe 30 machines in the last year. The update breaks something in how Windows applies QoS policies. It's not a hardware problem. Your switch and router are fine.
Root cause
The culprit here is almost always a corrupted or missing registry key under HKLM\SOFTWARE\Policies\Microsoft\Windows\QoS. Windows 10 22H2 changed how it reads policy files. If the key isn't formatted exactly right, it fails silently. The error code shows up, but no one checks Event Viewer until they notice the network is a mess.
Another common trigger: third-party VPN software. I've had cases where Cisco AnyConnect or OpenVPN re-wrote that registry key during an update. Same result — policies don't apply. Don't bother reinstalling the VPN client first. Check the registry.
Fix in 4 steps
- Open Registry Editor as admin. Press Win+R, type
regedit, hit Enter. Say yes to the UAC prompt. - Navigate to this key:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\QoS. If it doesn't exist, right-click theWindowskey, select New > Key, name itQoS. - Check the
VersionDWORD. Inside theQoSkey, look for a DWORD calledVersion. If it's missing, create it: right-click in the right pane, New > DWORD (32-bit), name itVersion, set the value to2. If it exists but has a value other than 2, change it to 2. For some machines, I've had to set it to1— try 2 first, if it doesn't stick, switch to 1. Don't ask why Microsoft made it inconsistent; they did. - Apply and test. Close regedit. Open a command prompt as admin and run
gpupdate /force. Then rungpresult /rto verify the policies are applied. If you're not using group policy, just restart thePolicyAgentservice withnet stop PolicyAgent && net start PolicyAgent.
What to check if it still fails
If the error persists after the registry fix, try these in order:
- Check your firewall. Windows Defender Firewall can block QoS policies if you've got custom rules. Temporarily disable it for 2 minutes — not good practice, but a quick test. If policies start working, export your firewall rules and rebuild them.
- Look at the QoS Service. Open Services.msc, find
QoS Packet Scheduler. Make sure it's set to Automatic and running. If it's disabled, set it to Automatic and reboot. I've seen updates set this to Manual for no reason. - Verify your policy syntax. Open gpedit.msc, go to Computer Configuration > Windows Settings > Policy-based QoS. Double-click your policy. Check the DSCP value and throttle rate. A common mistake: using DSCP value 0 when you mean 46. It won't error, but it won't do anything either.
- Test without the policy. Create a simple QoS policy that limits a specific app to 10 kbps. If that also fails, the issue isn't your values — it's the system. Run
sfc /scannowandDISM /Online /Cleanup-Image /RestoreHealth. This fixes corrupted files that might block QoS.
Last resort: uninstall the 22H2 update from Control Panel > Programs > View Installed Updates. Find KB5023772 or similar, remove it, reboot, and block it with the "Show or hide updates" tool. I only do this if nothing else works. Usually the registry fix handles it.
Short version: check the
VersionDWORD underHKLM\SOFTWARE\Policies\Microsoft\Windows\QoS. Set it to 2. If that fails, try 1. Reboot. Done.