| Previous | Next |
| TBS_E_PPI_NOT_SUPPORTED | TBS_E_BUFFER_TOO_LARGE |
TBS_E_COMMAND_CANCELED
Technical interpretation
TBS_E_COMMAND_CANCELED (0x8028400D) belongs to the public and internal TPM Base Services path. The base What Is page already shows the short Windows message; the additional diagnostic value is that this result marks a command submitted through TBS was canceled before a normal TPM result was returned.
The first producer to identify for TBS_E_COMMAND_CANCELED is the TBS client library, local RPC service and command scheduler before or around device execution. For TBS_E_COMMAND_CANCELED, tBS centralizes TPM access through a local RPC service. For TBS_E_COMMAND_CANCELED, a failure can therefore occur in the caller contract, RPC/service startup, scheduling, buffer handling or TPM submission, and each layer requires different evidence.
Inputs and state to capture
| Question | Evidence for TBS_E_COMMAND_CANCELED |
|---|---|
| What exact state was rejected? | a command submitted through TBS was canceled before a normal TPM result was returned |
| Which layer owns the result? | For TBS_E_COMMAND_CANCELED, the TBS client library, local RPC service and command scheduler before or around device execution. |
| What must be correlated? | context handle, cancel request, power transition, service shutdown, command duration, caller timeout, and whether the command has side effects |
| What is the controlled comparison? | repeat a known idempotent command without cancellation and trace the context until completion |
For TBS_E_COMMAND_CANCELED, separate caller data from platform state. The TBS_E_COMMAND_CANCELED caller data includes the command, structures, lengths, handles and flags; platform state includes TPM generation, provisioning, locality, lockout, resource inventory, firmware and the TBS service lifecycle. TBS_E_COMMAND_CANCELED is actionable only after the rejected side is identified.
Validate without broad changes
Use the following verification sequence:
- Capture the unmodified failing input and
0x8028400D. - Repeat a known idempotent command without cancellation and trace the context until completion.
- Compare the first
TBS_E_COMMAND_CANCELEDdivergent field or state transition. - Repeat
TBS_E_COMMAND_CANCELEDonly after restoring the same baseline, with a bounded retry policy where the specification permits retry.
Neighboring response codes
| Other code | Why a different remedy follows |
|---|---|
TBS_E_BUFFER_TOO_LARGE | The input or output buffer is too large — a separate checkpoint when compared with TBS_E_COMMAND_CANCELED. |
TBS_E_SERVICE_START_PENDING | The TBS service has been started but is not yet running — a separate checkpoint when compared with TBS_E_COMMAND_CANCELED. |
TBS_E_ACCESS_DENIED | The caller does not have the appropriate rights to perform the requested operation — a separate checkpoint when compared with TBS_E_COMMAND_CANCELED. |
For TBS_E_COMMAND_CANCELED, TPM_E_RETRY is a device request to resubmit; cancellation is imposed by TBS, the caller, or power management. The TBS_E_COMMAND_CANCELED difference determines whether to change serialization, authorization, resource lifetime, firmware/PPI state, command policy or only retry timing.
Fix and verify
Correct the original boundary by choosing this direction: coordinate cancellation and object lifetime, then recreate volatile state that may have been lost across the canceled operation. For TBS_E_COMMAND_CANCELED, do not restart or disable TBS before capturing its service and event data. For TBS_E_COMMAND_CANCELED, most caller-contract errors are reproducible without touching TPM ownership, firmware state or stored keys.
A successful TBS_E_COMMAND_CANCELED outcome preserves the intended hardware trust boundary, passes the original request, and produces verifiable output. Masking TBS_E_COMMAND_CANCELED, swallowing this HRESULT or switching silently to a software provider is not remediation.
References used for this checkpoint
- Microsoft: About TPM Base Services — source for the
TBS_E_COMMAND_CANCELEDcheckpoint. - Microsoft: TBS return codes — source for the
TBS_E_COMMAND_CANCELEDcheckpoint. - Microsoft: Tbsi_Context_Create — source for the
TBS_E_COMMAND_CANCELEDcheckpoint. - Microsoft: Tbsip_Submit_Command — source for the
TBS_E_COMMAND_CANCELEDcheckpoint.
Looking for a different code? Search another status or error code.