| Previous | Next |
| NS_E_DRM_INVALID_MACHINE | NS_E_DRM_INVALID_LICENSE_REQUEST |
NS_E_DRM_ENUM_LICENSE_FAILED
Where the operation stopped
0xC00D271B maps to NS_E_DRM_ENUM_LICENSE_FAILED. Read it as a result from local license store, secure store and machine binding: enumeration of licenses in the local repository stopped with an error. Keeping the “enum license failed” boundary intact prevents a later playback message from hiding the original DRM failure.
Record enumeration handle creation, last license returned and the first corrupt or inaccessible record.
State to capture before retry
- Code-specific proof: record enumeration handle creation, last license returned and the first corrupt or inaccessible record.
- Protected identity: first store API call that failed: open, enumerate, save, close or query.
- Operation state: license identifier and content key identifier (KID).
- Persistence or transport: store path, file generation, access result and underlying system error.
- Security context: hardware identity and the last hardware or operating-system change.
- Correlation point: checkpoint, secure-store and registry persistence sequence.
Place in the DRM workflow
The workflow around this result matters: a license is stored in the protected local license store after acquisition; a store failure is therefore distinct from a server refusing to issue a license. In addition, machine-bound state cannot be diagnosed safely by copying store files between computers or by deleting the original before evidence is preserved.
A useful investigation order
- Start from
0xC00D271Band map it to the first WMDRM object that returned it. - Separate content/header evidence, license evidence, machine/device evidence and service/network evidence around “enum license failed”.
- Before retrying this result, check whether another “enum license failed” operation was active or whether the previous result may have committed partially.
- Apply the smallest supported fix: repair the repository boundary and restart enumeration from a fresh object; avoid resetting unrelated protected state.
Targeted fix
The supported response to this result is narrow: repair the repository boundary and restart enumeration from a fresh object. After correcting it, reopen or recreate the object that owned “enum license failed” so the verification does not reuse state from the failed operation.
Representative case: Listing licenses succeeds for several entries and then fails on one store record.
What not to do first
- Avoid deleting or resetting DRM state before recording hashes, timestamps and the first store error.
- Avoid copying a protected license store from another computer as a repair.
Nearby results with different meanings
| Result | Different condition |
|---|---|
NS_E_DRM_INVALID_MACHINE | The protected license state is bound to a different machine identity. |
NS_E_DRM_SECURE_STORE_UNLOCK_ERROR | The client cannot unlock secure-store state required for DRM processing. |
NS_E_DRM_LICENSE_STORE_SAVE_ERROR | An acquired or updated license could not be committed to the local license store. |
Verification after correction
A valid regression has two fixtures: one that deliberately produces “enumeration of licenses in the local repository stopped with an error” and one that applies the targeted correction. Compare callback order, selected license/KID, final rights decision and persistence state; disappearance of the “enum license failed” dialog alone is not proof.
Code-specific operational note
The user-facing message “License storage is not working.
Technical references
Looking for a different code? Search another status or error code.
