| Previous | Next |
| TPM_20_E_UNINITIALIZED | TPM_20_E_NV_DEFINED |
TPM_20_E_NV_SPACE
TPM_20_E_NV_SPACE indicates that the TPM cannot reserve enough aggregate nonvolatile storage for the requested allocation. It is a capacity decision for the TPM's NV storage, not a request-range error on an existing index.
What it means in practice
- Existing NV indices consume finite TPM-managed nonvolatile storage, and the remaining capacity can vary by TPM implementation and provisioning history.
- A request may fit the maximum size of a single index yet still fail because the aggregate space is exhausted.
- Allocation may also involve TPM-managed metadata, so free application payload bytes are not the only consideration.
How to investigate safely
- Enumerate defined NV indices and retain their public metadata before changing anything. The index size, attributes, policy, and Name identify what a deletion would affect.
- Compare
TPM_20_E_NV_SPACEwithTPM_20_E_NV_SIZE: the former is total capacity, while the latter is the requested size of one index. - Identify obsolete test indices through the product's ownership and provisioning records, not only by handle value.
Avoid destructive retries
TPM2_NV_UndefineSpace is a lifecycle action. Deleting an index can remove a counter, policy anchor, audit state, or encrypted application secret. Reclaim space only when the application has an approved migration or deprovisioning path.
References: TCG TPM 2.0 Library Part 2: Structures, TCG TPM 2.0 Library Part 3: Commands, and tpm2_nvreadpublic.
Looking for a different code? Search another status or error code.