What does HRESULT 0x8028400D (TBS_E_COMMAND_CANCELED) mean?

 
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

QuestionEvidence 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:

  1. Capture the unmodified failing input and 0x8028400D.
  2. Repeat a known idempotent command without cancellation and trace the context until completion.
  3. Compare the first TBS_E_COMMAND_CANCELED divergent field or state transition.
  4. Repeat TBS_E_COMMAND_CANCELED only after restoring the same baseline, with a bounded retry policy where the specification permits retry.

Neighboring response codes

Other codeWhy a different remedy follows
TBS_E_BUFFER_TOO_LARGEThe input or output buffer is too large — a separate checkpoint when compared with TBS_E_COMMAND_CANCELED.
TBS_E_SERVICE_START_PENDINGThe TBS service has been started but is not yet running — a separate checkpoint when compared with TBS_E_COMMAND_CANCELED.
TBS_E_ACCESS_DENIEDThe 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


Looking for a different code? Search another status or error code.