You're trying to enable BitLocker, run a TPM provisioning script, or maybe use a tool like tpm.msc to manage your Trusted Platform Module. Then you get the error 0X80280046 – TPM_E_NOT_FULLWRITE. The exact message says “The write is not a complete write of the area.” I know this error is infuriating because it’s cryptic and doesn't tell you what you did wrong.
Here’s the typical trigger: You’re on Windows 10 version 21H2 or later, or Windows 11, and you’ve just updated your firmware or BIOS. Or maybe you’re running a custom TPM command from PowerShell (like Set-TpmOwnerAuth) and the data you're trying to send doesn't match the exact block size the TPM expects. The TPM 2.0 spec requires writes to be exactly aligned to the area’s size – no partials allowed.
Why This Happens
Your TPM has storage areas called NV (Non-Volatile) indices. Each index has a fixed size, defined when it's created. When you write data to that index, you must write the entire size in one shot. If your application or script sends fewer bytes than the area expects, the TPM rejects the write with this error.
Another common cause: The TPM’s firmware is out of date. Older TPM firmware versions (especially on Intel PTT or AMD fTPM) have quirks where they misreport the area size, so a correct write from your side still fails. I’ve seen this on Dell Latitude 5430 and HP EliteBook 840 G9 models after a BIOS update that silently changed TPM behavior.
Step-by-Step Fix
- Check your TPM status
Open tpm.msc (press Win+R, type tpm.msc, hit Enter). Look at the status. If it says “The TPM is ready for use,” you’re in good shape. If it shows an error or says “Compatible TPM cannot be found,” you’ve got deeper issues, but that’s not our problem here. - Update TPM firmware
If your TPM is from Intel (PTT) or AMD (fTPM), the firmware is part of the system BIOS. Go to your PC manufacturer’s support site, grab the latest BIOS update, and flash it. On a Dell, use Dell Command Update. On a Lenovo, use Lenovo Vantage. This alone fixed 0X80280046 for me on a ThinkPad X1 Carbon Gen 10. - Clear the TPM (if safe)
Warning: This wipes BitLocker keys and certificates. Back up your recovery key first. Then in tpm.msc, click “Clear TPM.” Reboot. Windows will reinitialize the TPM. This resets all NV indices to their default sizes, which eliminates any mismatched area sizes from previous operations. - Use the exact write command
If you’re writing from PowerShell, you must match the area size. Use Get-TpmEndorsementKeyInfo to check the key size, or query the NV index directly with Get-TpmNvStorage. Here’s an example for writing a 32-byte digest:
If the index expects 64 bytes, pad your data with zeros to hit that size.$data = 0x01, 0x02, ..., 0x20 # exactly 32 bytes Set-TpmNvStorage -Index 0x01C00001 -Data $data -Size 32 - Update Windows and TPM drivers
Go to Settings > Windows Update > Check for updates. Install any optional driver updates listed under “Driver updates.” Specifically look for “Trusted Platform Module 2.0” driver updates. Without the right driver, the communication layer between Windows and TPM can mangle the write size. - Run the TPM troubleshooter
Search for “Find and fix problems with TPM” in Settings > Update & Security > Troubleshoot. It’s basic, but I’ve seen it reset a stuck TPM state on my personal Surface Laptop 4.
What to Check If It Still Fails
If the error persists, your TPM hardware might be defective. Run a hardware diagnostic from your BIOS (F2 on Dell, F10 on HP). Also check the Windows Event Viewer under Applications and Services Logs > Microsoft > Windows > TPM-WMI for detailed error logs. I’ve seen a failing TPM on a 2022 Lenovo Yoga cause this error after a drop that damaged the chip.
One last thing: Some third-party security software (McAfee, Symantec) intercepts TPM commands. Try disabling them temporarily. That fixed it for a client using Dell Encryption on an OptiPlex 7080.
You’ve got this. The TPM is finicky, but once you nail the write size and firmware version, 0X80280046 disappears.