0XC000070E

STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED (0XC000070E) Fix

This error means Windows failed to unload a DLL after a threadpool callback. It's common with buggy drivers or legacy apps stuck in memory. Here's how to fix it.

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)

  1. Run System File Checker and DISM. Open Command Prompt as Administrator. Type sfc /scannow and let it complete. If it finds corrupt files but doesn't fix them, or if the error persists, run DISM /Online /Cleanup-Image /RestoreHealth. This repairs the system image itself. Reboot after both finish. This fixes maybe 40% of cases.
  2. 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.
  3. 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.
  4. 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 like nvlddmkm.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 msconfig to 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 Files and C:\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.

Related Errors in Windows Errors
0XC00D1028 Fix NS_E_WMP_PNG_INVALIDFORMAT (0XC00D1028) in Windows Media Player 0XC00D1138 Fix NS_E_WMPBR_BACKUPRESTOREFAILED (0XC00D1138) in WMP 0XC000071E STATUS_CALLBACK_RETURNED_LDR_LOCK (0XC000071E) Fix 0XC00D10B8 NS_E_WMPCORE_MEDIA_CHILD_PLAYLIST_UNAVAILABLE (0XC00D10B8) Fix

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.