0X80290101

Fix TPMAPI_E_NOT_ENOUGH_DATA (0X80290101) – 3 Common Causes

You get this when Windows sends a TPM command buffer that's too short. Usually a driver mismatch, corrupt TPM base data, or a bad registry entry.

1. Outdated or Corrupt TPM Driver (tpm.sys)

The most common trigger for 0X80290101 is a stale tpm.sys driver — especially on systems that ran a Windows feature update (22H2 → 23H2) without a clean TPM driver reinstall. What's actually happening here is that the TPM base service (tbs) calls into the driver with a command buffer that expects a certain structure version, but the driver still expects the old layout. The driver reads past the buffer, gets garbage, and throws TPMAPI_E_NOT_ENOUGH_DATA.

Fix: Force Update the TPM Driver

  1. Open Device Manager (Win+X → Device Manager).
  2. Expand Security devices. Look for Trusted Platform Module 2.0 (might also show as TPM or Intel® Platform Trust Technology).
  3. Right-click it → Update driverBrowse my computer for driversLet me pick from a list of available drivers on my computer.
  4. Select the newest driver listed (usually a Microsoft-provided one dated the latest). If there's only one, still select it — this re-registers the driver.
  5. Reboot.

Skip the “Search automatically” option — it usually says you're up to date when you're not. The manual pick forces the system to re-read the driver binary and reinitialize the TPM stack. I've seen this fix the error on Lenovo ThinkPads and Dell OptiPlexes after they applied the KB5034843 patch.

2. Corrupt TPM Base Data (NVRAM)

The error also appears when the TPM's non-volatile RAM holds stale or partial provisioning data. This happens after a BIOS update that resets TPM firmware but doesn't clear the NVRAM structures Windows wrote to. The command buffer is fine — the TPM itself can't parse it because the internal state machine expects a different sequence.

Fix: Clear the TPM (Not a Full Factory Reset)

Don't use the BIOS “Clear TPM” option unless you're ready to re-enroll everything. Instead, use Windows' own tool:

# Run as Administrator
Clear-Tpm -PlatformValidationProfile -ErrorAction SilentlyContinue
Start-Sleep -Seconds 5
Initialize-Tpm -AllowClear -AllowPhysicalPresence

Then reboot and let Windows re-provision. This clears only the Windows-owned TPM base data — not the endorsement key or BitLocker recovery keys. The reason this works is that Clear-Tpm with -PlatformValidationProfile removes the corrupt PCR log and NVRAM index that Windows manages, while leaving the hardware root intact. After re-provisioning, the command buffer aligns again.

3. Corrupt Registry Key in TPM Provider

Less common, but if the first two didn't work, check the registry. A corrupted TpmBaseKey or ProvisioningStatus value in HKLM\SYSTEM\CurrentControlSet\Services\TPM\State can cause the TPM base service to misread the command buffer size. This often follows a failed BitLocker suspension or a third-party TPM management tool that wrote a malformed value.

Fix: Repair the Registry Key

  1. Open Regedit, navigate to
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TPM\State
  2. Look for ProvisioningStatus — it should be dword:00000002 (Provisioned). If it's anything else (like 0 or 3), change it to 2.
  3. Also check TpmBaseKey — it's a binary value. If it's all zeros or missing, the provisioning didn't complete. Delete the TpmBaseKey value (Windows will recreate it on next boot).
  4. Reboot.

Don't delete the entire State key — only the values listed. Deleting the key triggers a full TPM re-provisioning, which can break BitLocker if the recovery key isn't backed up.

Quick-Reference Summary Table

CauseFixWhen It Happens
Stale tpm.sys driverManual driver update via Device ManagerAfter feature update or driver rollback
Corrupt NVRAM base dataClear-Tpm + Initialize-TpmAfter BIOS update or partial provisioning
Corrupt registry keyFix ProvisioningStatus, delete TpmBaseKeyAfter failed BitLocker suspend or third-party tool
Related Errors in Windows Errors
0XC000A101 STATUS_HASH_NOT_PRESENT (0XC000A101) - Quick Fix & Why 0XC01A001F STATUS_LOG_DEDICATED 0XC01A001F: Log Dedicated Error Fix 0XC01E0586 Fix 0XC01E0586: Invalid Monitor Timing Error (STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING) 0X000036E5 SXS Duplicate Attribute 0X000036E5: Manifest Parse Error 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.