Fixing WSA_QOS_EFLOWDESC (0x00002B12) in Windows
This error hits when a QoS flow descriptor is malformed. Usually from broken app installs, bad registry keys, or corrupted Winsock.
You're most likely to see error 0x00002B12 when a networked application — usually a game, VoIP client, or custom tool that uses Quality of Service (QoS) — crashes during startup or a socket operation. I've seen it trigger specifically when a program tries to register a flow spec with Windows QoS and the descriptor structure is garbage. Common culprits: a botched app update, leftover registry entries from an old uninstall, or a third-party firewall that mangled the Winsock catalog.
What's actually going on
Windows QoS (part of the Winsock2 API) expects flow descriptors to follow a strict binary format defined in winnt.h. When a program sends a descriptor that doesn't match — wrong size, invalid flags, or a corrupted pointer — the API returns WSA_QOS_EFLOWDESC. The system isn't broken; the descriptor is.
This rarely means hardware failure. It's almost always a software issue: either the application shipped with bad QoS code, a registry key from a previous app version is interfering, or the Winsock catalog got corrupted by something like a VPN or antivirus.
The fix
Skip the shotgun approach. Here's the sequence that works 9 times out of 10.
- Reset Winsock — this clears the Winsock catalog and flushes any broken service providers. Open Command Prompt as Administrator and run:
Then restart the PC. This alone fixes most cases.netsh winsock reset - Clean up QoS registry entries — old entries in
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winsockcan persist. Open Regedit and navigate there. Look for any subkey referencing the broken app (e.g., the game's name) and delete it. Back up the key first. - Reinstall the application — uninstall completely, reboot, then reinstall from a fresh download. Do not use an old installer copy. The new version likely has fixed the descriptor format.
- Check Group Policy — if you're on a domain, the GPO might enforce strict QoS settings. Run
gpedit.msc, go to Computer Configuration > Administrative Templates > Network > QoS Packet Scheduler. If anything is set to "Enabled" that shouldn't be, disable it or set it to "Not configured". - Run the app as administrator — some apps need admin rights to register flow descriptors. Right-click the executable, go to Properties > Compatibility, check "Run this program as an administrator".
If it still fails
Try these harsher steps:
- Clean boot — disable all non-Microsoft services via
msconfig. If the error goes away, one of those services is the problem. Enable them one by one to find the culprit. - Check for corrupted system files — run
sfc /scannowfrom an admin command prompt. If it finds issues, runDISM /Online /Cleanup-Image /RestoreHealthnext. - Update network drivers — go to your NIC manufacturer's site (Intel, Realtek, etc.) and grab the latest driver. Don't rely on Windows Update for this.
- Test with a different user account — create a local admin account and try the app there. If it works, the original user's profile has a corrupted Winsock entry.
I've seen this error once where the app was a decade-old VoIP tool that used a deprecated QoS API. In that case, the only fix was wrapping the executable in a compatibility shim or replacing the software entirely. But for most modern apps, the Winsock reset and registry cleanup will kill it.
Was this solution helpful?