Quick answer for the impatient
This error usually means a driver or app passed a bad handle to FreeLibrary inside a threadpool callback. The most reliable fix is to run sfc /scannow followed by DISM /Online /Cleanup-Image /RestoreHealth from an elevated Command Prompt, then restart. If that doesn't work, check the latest driver updates for your GPU, network adapter, and any OEM-specific software like Logitech or Razer utilities.
Why this error shows up
I know this error is infuriating — especially when it pops up mid-game or during a critical workflow. You're doing your thing, and boom: a system crash or a popup with that ugly 0xC000070E code. It's not your average BSOD. It's Windows complaining that a threadpool callback finished, tried to unload a DLL via FreeLibrary, and that call failed.
In plain English: something in your system told Windows "hey, when this background task finishes, remove this DLL from memory." But when the task finished, the DLL was either already gone, or the handle pointing to it was invalid — so Windows threw a fit. This almost always traces back to a driver that's poorly coded, a program that's uninstalled but left a callback registered, or a corrupt system file. I've seen it most often with outdated graphics drivers (NVIDIA especially), network filter drivers (like VPN adapters or security suites), and custom mouse/keyboard software.
The error message gives you a hint: there's a pointer to the callback, another pointer to something else, and the failed FreeLibrary call. But chasing those addresses in a debugger is overkill for most people. Let's fix it step by step.
Fix steps (main approach)
- Run System File Checker and DISM. Open Command Prompt as Administrator. Type
sfc /scannowand let it complete. If it finds corrupt files but doesn't fix them, or if the error persists, runDISM /Online /Cleanup-Image /RestoreHealth. This repairs the system image itself. Reboot after both finish. This fixes maybe 40% of cases. - Update all drivers. Go to your PC or motherboard manufacturer's support page and grab the latest chipset, audio, and network drivers. For graphics cards, use NVIDIA's or AMD's official site — not Windows Update. Don't trust third-party driver updaters; they cause more problems than they solve.
- Check for recently installed software. If the error started after you installed something like a VPN client, antivirus, or a game with anti-cheat (looking at you, Valorant's Vanguard), try uninstalling it. Reboot and see if the error goes away.
- Use Event Viewer to pinpoint the offender. Hit Win+R, type
eventvwr.msc, go to Windows Logs > System. Look for Warnings or Errors around the time of the crash. The source will often be something like "Application Popup" or a specific driver name. If you see a module name likenvlddmkm.sys, it's your GPU driver.rt640x64.sys? That's Realtek network — update it.
If the main fix doesn't work
Sometimes the culprit is a stubborn driver that won't unload. Here are my go-to alternatives:
- Clean boot. Use
msconfigto disable all non-Microsoft services and startup programs. Restart. If the error stops, re-enable services one by one until it comes back — that's your problem child. - Check for leftover DLLs from uninstalled software. Use a tool like Autoruns (from Microsoft Sysinternals) to look for startup entries pointing to missing DLLs. Delete the dead entries.
- Reset Windows with "Keep my files". I hate recommending this, but if nothing else works, go to Settings > Update & Security > Recovery > Reset this PC. Choose "Keep my files" — it reinstalls Windows clean but keeps your documents. It nukes problematic drivers and registry hooks.
Prevention tips
Once you've fixed it, here's how to keep it from coming back:
- Stick to official driver sources. Never use "driver booster" apps.
- Uninstall software the right way — use the program's uninstaller, then check for leftover folders in
C:\Program FilesandC:\ProgramData. - Keep Windows fully updated. I know some people delay patches, but this error is often fixed in cumulative updates.
- If you're a developer writing threadpool callbacks, always validate DLL handles before calling
FreeLibrary— that's the root cause in code.
This error tripped me up the first time too. Don't stress — it's almost always fixable without reinstalling everything. Start with the SFC/DISM combo, update your drivers, and you'll be golden.