| Previous | Next |
| TPM_E_BAD_HANDLE | TPM_E_BADCONTEXT |
TPM_E_BAD_DELEGATE
Interpret the condition first
TPM_E_BAD_DELEGATE (0x80280059) belongs to TPM 1.2 resources, delegation and contexts. This result means the TPM 1.2 delegation blob or row is invalid for the requested authorized operation.
Build the command transcript
| Question | Evidence |
|---|---|
| What exact state was rejected? | the TPM 1.2 delegation blob or row is invalid for the requested authorized operation |
| Which layer owns the result? | The TPM resource, context or delegation manager, sometimes mediated by TBS virtualization. |
| What must be correlated? | delegation type, family ID and count, row label, permissions, integrity digest, entity binding, and owner lifecycle |
| Controlled comparison | decode and verify a newly issued delegation, then use it once for the intended command |
Record the original command or API call before retry logic for this result mutates its nonces, handles, buffers or state. Also retain the full HRESULT as 0x80280059; signed decimal logging can obscure the TPM/TBS facility and make searches less precise.
Test one hypothesis
- Establish the baseline with the same device, Windows build, account and TPM generation.
- Perform one narrow experiment: decode and verify a newly issued delegation, then use it once for the intended command.
- Compare raw inputs and the first response, not only the final application dialog.
- Stop after the first changed result; if a later error replaces this HRESULT, this condition was passed even if the whole workflow still fails.
Do not merge these conditions
| Result | Different diagnostic question |
|---|---|
TPM_E_BADCONTEXT | The context blob is invalid. |
TPM_E_BAD_HANDLE | The handle is incorrect. |
TPM_E_TOOMANYCONTEXTS | Too many contexts held by the TPM. |
The key distinction is that TPM_E_DELEGATE_FAMILY identifies a family mismatch; this code covers the delegation object more generally.
A safe recovery path
To correct this, replace stale or corrupted delegation data and issue only the permissions required by the operation. Do not persist volatile TPM or TBS handles as durable identifiers. A numeric handle can be valid only inside the creating context and lifecycle, even when its value looks unchanged after restart.
Technical references
Looking for a different code? Search another status or error code.
