| Previous | Next |
| TPM_20_E_RETRY | TBS_E_INTERNAL_ERROR |
TPM_20_E_NV_UNAVAILABLE
TPM_20_E_NV_UNAVAILABLE means that the command needs nonvolatile storage or an NV-backed state change, but the TPM cannot currently provide that access. The request may be otherwise valid, and the status can occur even when the application is not directly writing an NV byte array.
What it is not
- It is not the same as
TPM_20_E_NV_RANGE, which concerns an offset or length outside an existing index. - It is not
TPM_20_E_NV_SPACE, which concerns allocation capacity. - It is not
TPM_20_E_NV_RATE, which explicitly indicates endurance-related throttling.
Diagnostic information that matters
- Record the precise TPM command and whether it can cause an internal NV update, such as updating audit, dictionary-attack, counter, or other protected state.
- Capture the TPM startup state, recent power transitions, firmware or driver events, and the TCTI or resource-manager path used by the process.
- Retry only through a bounded policy. Reissuing a command without considering idempotency can be unsafe for a counter, a state transition, or an operation that may partially complete before the caller receives a result.
Recovery approach
First determine whether the condition is transient and whether the command is safe to retry. If it persists across a normal restart and the TPM is otherwise reachable, preserve diagnostics and follow the platform's documented TPM maintenance or firmware support process instead of clearing or reprovisioning the TPM as a first response.
References: TCG TPM 2.0 Library Part 3: Commands and tpm2_nvreadpublic documentation.
Looking for a different code? Search another status or error code.