| Previous | Next |
| TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS | TBSIMP_E_UNKNOWN_ORDINAL |
TBSIMP_E_COMMAND_FAILED
Locate the first producer
TBSIMP_E_COMMAND_FAILED means an internal TBS-submitted TPM command failed and no more specific implementation status was selected.
The first producer to identify is the TBS client library, local RPC service and command scheduler before or around device execution. TBS centralizes TPM access through a local RPC service. A failure can therefore occur in the caller contract, RPC/service startup, scheduling, buffer handling or TPM submission, and each layer requires different evidence.
Read this result as its own boundary in a sequence, not as a verdict that every TPM feature is broken. The sequence reaches an internal TBS-submitted TPM command failed and no more specific implementation status was selected, and the component returns 0x80290211 before the application can safely assume that later key, attestation, boot or licensing work occurred.
Data to retain
- Request identity: exact function or command, input lengths, flags, caller context and this result.
- State identity: the actual TPM response code, generated internal command, resource virtualization step, context, firmware revision, and preceding event.
- Platform identity: TPM generation, manufacturer/firmware revision, Windows build and relevant service events.
- Binary identity: preserve opaque structures byte-for-byte and log
0x80290211in hexadecimal.
Verification sequence
Capture the raw response for a minimal reproduction and compare the same command outside the higher-level workflow.
| Observed outcome | Interpretation |
|---|---|
| The exact request succeeds | The changed condition belongs to the rejected an internal TBS-submitted TPM command failed and no more specific implementation status was selected. |
| A more specific earlier code appears | Preserve the earlier result in the diagnostic trace; the previous trace probably lost the first producer. |
| The same code returns with identical bytes | Escalate the persistent it with firmware, service and command evidence rather than broad configuration changes. |
| The code disappears only after destructive reset | The result experiment is not diagnostic because original protected state and evidence were removed. |
Codes that answer different questions
| Nearby constant | Why it is different |
|---|---|
TBSIMP_E_UNKNOWN_ORDINAL | The TBS does not recognize the specified ordinal. |
TBSIMP_E_OUT_OF_MEMORY | There was not enough memory to fulfill the request. |
TBSIMP_E_TPM_INCOMPATIBLE | TBS is not compatible with the version of TPM found on the system. |
By contrast, TBSIMP_E_TPM_ERROR emphasizes communication or interpretation, while this code reports failed command execution.
Exit condition for the incident
Apply the narrow remedy: diagnose the nested TPM result and preserve it through logging; the wrapper alone is not enough to choose remediation. Do not restart or disable TBS before capturing its service and event data. Most caller-contract errors are reproducible without touching TPM ownership, firmware state or stored keys.
References
- Microsoft: About TPM Base Services — source for this result.
- Microsoft: TBS return codes — source for this result.
- Microsoft: Tbsi_Context_Create — source for this result.
- Microsoft: Tbsip_Submit_Command — source for this result.
Looking for a different code? Search another status or error code.
