I've seen this error pop up on a client's machine running a POS system that kept crashing mid-transaction. The full message says "Cannot set thread local storage channel control" and it's tied to COM+ and TLS (not the HTTPS kind—thread local storage). It usually shows when an app tries to initialize a COM object and Windows can't set up the per-thread storage it needs.
Below is a troubleshooting flow. Start with the first fix—it's a 30-second shot in the dark that sometimes actually hits. Stop when the error goes away.
Fix 1: Clear Temp Files and Re-register COM+ (30 seconds)
This sounds dumb, but half the time the error is just because a temp folder got cluttered or locked. Walk through these steps:
- Press Win + R, type
%temp%and hit Enter. Delete everything inside (you can skip files that are in use). - Press Win + R again, type
cmd, right-click and choose Run as administrator. - Run these two commands:
regsvr32 vbscript.dll
regsvr32 jscript.dll
These re-register scripting engines that COM+ uses behind the scenes. I had a client last month whose antivirus had quarantined one of these DLLs, and this fixed it instantly.
If the error still shows up, move to Fix 2.
Fix 2: Reset COM+ Permissions (5 minutes)
When temp files aren't the issue, it's almost always a permission problem on the COM+ catalog. Windows has a built-in tool for this—the Component Services console. Here's what to do:
- Press Win + R, type
comexp.msc, hit Enter. - Expand Component Services → Computers → My Computer → COM+ Applications.
- Right-click on the application that's throwing the error (or all of them if you're not sure), pick Properties, go to the Security tab.
- Make sure Launch permissions and Access permissions are set to Everyone or at least include the user account running the app. Apply and restart the service.
Also check the Identity tab. The default is usually "Interactive User", but if the app runs as a service, switch it to "This user" and enter valid credentials. I've seen that error happen when the identity account's password expired—that's a kicker.
If you're using a 64-bit system and the app is 32-bit, you might need to check both the 32-bit and 64-bit COM+ catalogs. Use the 32-bit version of comexp.msc from C:\Windows\SysWOW64\.
Still failing? Let's go deeper.
Fix 3: Registry Tweak for TLS Storage (15+ minutes)
This is the nuclear option, but it's the one that actually solves the root problem when permissions and temp files don't. The error means the OS can't set up thread local storage for the channel control in COM+. That's often because the HKLM\SOFTWARE\Microsoft\Ole key has permissions that are too tight.
Back up your registry first—seriously, don't skip this.
- Press Win + R, type
regedit, hit Enter. - Go to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole. - Right-click Ole, choose Permissions, and click Advanced.
- Make sure SYSTEM and Administrators have Full Control. If they don't, add them or fix the permissions.
- Also check
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID—sometimes a specific COM class is locked down.
While you're there, look for the EnableDCOM value under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole. Set it to Y if it's missing or set to N.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]
"EnableDCOM"="Y"
After making registry changes, reboot the machine. COM+ caches a lot of this stuff in memory, so a restart is required—not optional.
If you're still stuck after that, you're dealing with something more exotic. Try running the app as a different user, or check if the error happens after a Windows update—roll back the latest update if it started then.
If all else fails, runsfc /scannowandDISM /Online /Cleanup-Image /RestoreHealthfrom an elevated command prompt. I've seen corrupted system files cause this exact error when nothing else did.
That's my workflow. Most people stop at Fix 1 or Fix 2. The hard cases—the ones that have you pulling your hair out—usually crack after the registry permissions fix. Let me know how it goes.