0x80090016

NTE_BAD_KEYSET: keyset does not exist

Last reviewed 2026-07-18 by the Just Software engineering team · also seen as 80090016, -2146893802, NTE_BAD_KEYSET

What it means

0x80090016 is NTE_BAD_KEYSET"Keyset does not exist". The cryptographic provider was asked to open a key container that is missing or unreadable. In Intune SCEP scenarios this usually points at damaged TPM key storage or machine key files that were deleted or have broken permissions.

Common causes

  1. TPM key storage is in a bad state (interrupted firmware update, cleared TPM with stale references, hibernation/fast-startup edge cases).

  2. Machine key files under %ProgramData%\Microsoft\Crypto were deleted by cleanup tooling or have broken ACLs.

  3. The enrolment was interrupted between key generation and certificate installation, leaving a dangling reference.

How to fix it

  1. Check TPM status with Get-Tpm — if it reports not ready or owner authorisation problems, clear the TPM from tpm.msc (suspend BitLocker first; TPM-protected keys and Windows Hello registrations are destroyed).

  2. Verify permissions on %ProgramData%\Microsoft\Crypto\Keys and ...\Crypto\RSA\MachineKeys match a healthy device.

  3. Delete the failed certificate request state by removing any stale pending request in certlm.msc > Certificate Enrollment Requests, then sync the device to retry.

An unhandled error has occurred. Reload 🗙