| Previous | Next |
| TPM_E_NO_WRAP_TRANSPORT | TPM_E_AUDITFAIL_SUCCESSFUL |
TPM_E_AUDITFAIL_UNSUCCESSFUL
Which layer owns this HRESULT
TPM_E_AUDITFAIL_UNSUCCESSFUL (0x80280030) belongs to TPM 1.2 command processing. The base What Is page already shows the short Windows message; the additional diagnostic value is that this result marks audit-record construction failed while the audited TPM 1.2 command was itself returning a failure.
Diagnostic record
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | audit-record construction failed while the audited TPM 1.2 command was itself returning a failure |
| Which layer owns the result? | The TPM 1.2 command decoder and state machine. |
| What must be correlated? | command ordinal, audit selection state, input and output digests, audit counter, command failure code, and the response bytes before wrapper translation |
| What is the controlled comparison? | run a harmless audited command to determine whether audit state is generally usable, then reproduce the original command separately |
Record the original command or API call before this result retry logic mutates its nonces, handles, buffers or state. Also retain the full HRESULT as 0x80280030; signed decimal logging can hide the result TPM/TBS facility and make searches less precise.
How to verify the distinction
- Establish the result baseline with the same device, Windows build, account and TPM generation.
- Perform one narrow experiment: run a harmless audited command to determine whether audit state is generally usable, then reproduce the original command separately.
- Compare raw this result inputs and the first response, not only the final application dialog.
- Stop after the first changed the checkpoint; a later error means this boundary was passed even if the whole workflow still fails.
Common false equivalences
| Result | Different diagnostic question |
|---|---|
TPM_E_AUDITFAIL_SUCCESSFUL | TPM audit construction failed and the underlying command was returning success — a separate checkpoint when compared with this result. |
TPM_E_NO_WRAP_TRANSPORT | The TPM does not allow for wrapped transport sessions — a separate checkpoint when compared with it. |
TPM_E_NOTRESETABLE | Attempt to reset a PCR register that does not have the resettable attribute — a separate checkpoint when compared with it. |
The decisive distinction for this HRESULT is that TPM_E_AUDITFAIL_SUCCESSFUL means the command operation succeeded even though audit construction failed. The short platform wording — “TPM audit construction failed and the underlying command was returning a failure code also.” — does not supply that differential diagnosis by itself.
What a real fix looks like
The corrective direction is to repair the audit chain or firmware issue while retaining the underlying command failure as an independent cause. Do not clear ownership, delete keys or reset PCR-related state merely to see whether the message disappears; those actions can destroy the evidence and protected material while leaving serialization or command-order defects unchanged.
A verified it repair reproduces the original request with the same intended security policy and passes this checkpoint. Replacing it with a broader wrapper status, silently falling back to software keys, or suppressing verification is not proof of success.
Technical references
- TCG: TPM 1.2 Main Specification — source for the checkpoint.
- TCG: TPM 1.2 Part 2 — Structures — source for the checkpoint.
- TCG: TPM 1.2 Part 3 — Commands — source for the checkpoint.
- Microsoft: TPM Base Services portal — source for the checkpoint.
Looking for a different code? Search another status or error code.