I saw this error three times last month alone. A client's HR system wouldn't start, another couldn't open a VPN, and a third had Outlook throwing a fit. Same code every time: 0x80090008 with the message NTE_BAD_ALGID – Invalid algorithm specified.
The good news? It's almost never a hardware failure. It's Windows telling you that a piece of software tried to use an encryption method that's been turned off or never existed in the first place. Let's walk through the real causes, starting with the one I see nine times out of ten.
Cause 1: Disabled TLS 1.2 (Most Common)
That HR system? It was still trying to use TLS 1.0 or even SSL 3.0. Windows 10 and 11, plus recent Server builds, have those old protocols disabled by default. Your app doesn't care. It just tries to shake hands with a server using an algorithm that's not in the allowed list, and boom – 0x80090008.
Here's what I do first, every time. Open regedit and check these keys:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client\EnabledIf that value is 0 or doesn't exist, that's your problem. Set it to 1 (DWORD). Also make sure the server side isn't set to 0. I've seen setups where someone disabled it globally to 'harden' things, and broke every legacy app in the building.
Don't stop at TLS 1.2. Check if TLS 1.3 is enabled too, because some newer apps require it. But the old apps won't use it – they'll just fail if it's not there.
Quick fix: If you can, just enable TLS 1.2 and reboot. That solved the HR system in about ten minutes.
Cause 2: Corrupt or Missing Crypto Provider
Second most common: a certificate or key file references a cryptographic service provider that isn't installed or got nuked by an update. I had a client whose entire print queue died after a Windows feature update removed an old CSP that their document management software depended on.
You'll see this error when trying to open a .pfx or .cer file, or when an app tries to access a certificate store. The error message might even point to the specific provider.
First, try importing the certificate again as an administrator:
certutil -importPFX -user My\myfile.pfxIf that still throws 0x80090008, you're missing the provider. For older apps, you might need to reinstall the legacy CSP from the vendor. For built-in ones, check if the Microsoft Base Cryptographic Provider v1.0 is still present:
certutil -csplistIf you don't see it, you might need to repair Windows using sfc /scannow and DISM /Online /Cleanup-Image /RestoreHealth. I've had that bring back missing providers after a botched update.
Cause 3: Legacy App or Script Calling Withdrawn Algorithm
Sometimes the algorithm itself is fine, but the software is asking for something that Windows no longer supports. Microsoft removed MD5 hashing for signing operations in Windows 7 and later, and SHA-1 is on its way out. If an old script or app tries to use RC4 or 3DES, you'll get this error.
I dealt with a customer's payroll software that still used RC4 for their local database encryption. Windows 11 wouldn't touch it. The proper fix was to update the software – and that's what I'm going to tell you to try first too.
But if you can't update, there's a registry workaround that re-enables some of these old algorithms. Be careful – this lowers security. Do it only on isolated machines, not on a domain controller.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNELUnder the SCHANNEL key, create a subkey for the algorithm you need. For RC4 128-bit:
SCHANNEL\Ciphers\RC4 128/128Set Enabled to 0xffffffff. Same pattern for RC4 40/128 and RC4 56/128. Reboot, try the app again.
I'll say it again: this is a stopgap. You're better off replacing old software than propping up insecure crypto. But sometimes the business can't wait six months for a vendor's upgrade, and that's when this works.
Quick Reference Table
| Cause | Symptom | Fix |
|---|---|---|
| TLS 1.2 disabled | Error when connecting to remote service | Enable TLS 1.2 in registry, reboot |
| Corrupt crypto provider | Error when importing certs or opening them | Reimport PFX, run DISM and SFC, check CSP list |
| Old algorithm unsupported | Only happens with legacy apps/scripts | Update app or enable legacy cipher in registry |
Most of the time you're not actually dealing with a broken system. You're dealing with a configuration that doesn't match what your software expects. Start with TLS 1.2, check your certificate provider, and only then go digging for old algorithm keys.