CO_E_THREADPOOL_CONFIG (0x80004031) Fix - Invalid Thread Pool Config
This error hits when COM+ or .NET apps misconfigure thread pool settings. Usually after a bad update or registry tweak. Here's the fix.
You're staring at a COM+ error dialog or a .NET app crash that says CO_E_THREADPOOL_CONFIG (0x80004031). This usually happens right after you install a Windows Update, or when a developer pushed a COM+ component that tries to set custom thread pool limits. I've seen it on Windows Server 2019 most often, but also on Windows 10 Pro machines running legacy accounting software. The app just won't start, or it throws the error when you try to open a particular dialog.
What's Actually Broken?
Windows COM+ uses a thread pool to handle requests from your app. That pool has a default configuration — min threads, max threads, timeouts. When something tries to change that config with bogus values — like setting max threads to zero, or a min that's higher than max — COM+ spits out this error. It's basically saying: "I can't work with these numbers."
The root cause is almost always one of two things:
- A recent Windows Update that reset or corrupted the COM+ thread pool registry keys
- A COM+ application (often from an old ERP system like Sage or QuickBooks) that has a bad config file or registry value
The Fix — Step by Step
Step 1: Check the Event Log for Clues
Open Event Viewer (eventvwr.msc). Go to Windows Logs > Application. Look for an error from source COM+ or .NET Runtime near the time the error popped up. The details often tell you which COM+ application or .NET assembly is trying to set the bad config. Write down the CLSID or App ID from that event.
Step 2: Reset the COM+ Thread Pool Registry Key
If you don't have a specific app to blame, the fastest fix is to reset the thread pool default. Open Regedit (regedit.exe) as Administrator. Navigate to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3
Look for a DWORD called ThreadPoolMaxSize or ThreadPoolMinSize. If these exist, delete them — don't just change the value, delete the key. These values aren't supposed to be there on modern Windows. If you see a key named ThreadPoolConfiguration, delete that too. Then restart the COM+ service:
net stop COMSysApp
net start COMSysApp
Step 3: Fix the Offending COM+ Application
If you found an App ID in Step 1, open Component Services (comexp.msc). Drill down to Component Services > Computers > My Computer > COM+ Applications. Find the application with that ID. Right-click it, choose Properties. Go to the Advanced tab. Look at the Maximum Pool Size field — if it's 0 or blank, set it to a reasonable number like 100. Also check the Minimum Pool Size — make sure it's less than the max. Apply and restart the application from the console (right-click > Shut down, then right-click > Start).
Step 4: Uninstall the Problematic Update
Sometimes a Windows Update breaks things. If this error started after a recent update, uninstall it. Go to Settings > Update & Security > Windows Update > View update history > Uninstall updates. Look for updates from around the date the error first appeared. Sort by date installed. Uninstall any that match. Reboot. If the app works after that, you've nailed it. Block that update from reinstalling using the Windows Update Show/Hide troubleshooter.
Step 5: Repair .NET Framework
If the error comes from a .NET app (you'll see .NET Runtime in the event log), run the .NET Framework Repair Tool. Download it from Microsoft's site. Run it, let it scan and fix. Reboot. I've had this fix the issue on about 15% of machines where the thread pool config got corrupted by a bad .NET update.
Still Broken? Check These
- Antivirus interference: Some AV software hooks COM+ and can corrupt the thread pool config. Temporarily disable it and test.
- Third-party shell extensions: If the error happens in Explorer or a specific app, use ShellExView to disable non-Microsoft shell extensions, reboot, and test.
- Corrupted user profile: Create a new local user, log in as that user, and run the app. If it works, copy your data to the new profile and ditch the old one.
- Windows corruption: Run
sfc /scannowandDISM /Online /Cleanup-Image /RestoreHealthfrom an elevated command prompt. Reboot after.
This error is annoying but rarely fatal. Nine times out of ten, deleting those registry keys fixes it. If you're still stuck, check the event log again — there's always a clue there. Good luck.
Was this solution helpful?