| Previous | Next |
| NS_E_INVALID_DRMV2CLT_STUBLIB | NS_E_DRM_MIGRATION_LICENSE_ALREADY_EXISTS |
NS_E_DRM_MIGRATION_INVALID_LEGACYV2_DATA
Meaning beyond the player message
The symbolic result NS_E_DRM_MIGRATION_INVALID_LEGACYV2_DATA narrows 0xC00D2791 to license and secure-state migration. In practical terms, legacy DRM v2 data supplied to the importer is malformed or inconsistent; the producing layer is the controlled import/export path that packages legacy DRM state, validates the migration image and source identity, and commits eligible licenses to a supported target environment.
The built-in message summarizes the user-visible outcome, while the symbolic phrase “migration invalid legacyv2 data” preserves the exact WMDRM boundary for diagnosis. For this code, the proof step is to record entry identity, size, version and source store evidence.
Which component owns the failure
Do not flatten this result into a generic DRM error. Migration is not equivalent to copying license-store files: the importer validates source state, target support and protected identities. The second relevant rule is that a migration image, target-state corruption and an already imported license are independent outcomes and should not be collapsed into one generic restore failure.
How to prove the condition
- Preserve this result, the calling interface and the first lower-level status before a wrapper replaces it.
- Correlate this result with one KID/license ID, content hash, device certificate or migration operation ID for this path.
- Reconstruct the state transition immediately preceding “migration invalid legacyv2 data” instead of starting from the final player dialog.
- Prove the boundary by ensuring you can record entry identity, size, version and source store evidence.
- After you export a fresh valid legacy data set from the source, verify both the requested right and the final store/device state.
Diagnostic inputs that separate the causes
Capture the first occurrence before retry or teardown changes state. The smallest useful record contains:
- Code-specific proof: record entry identity, size, version and source store evidence.
- Protected identity: legacy V2 secure-store entry and supplied password.
- Operation state: importer plug-in availability and current operation state.
- Persistence or transport: per-license duplicate or import result.
- Security context: source and target OS versions and user SIDs.
- Correlation point: migration image identity, hash and creation time.
Prefer IDs, hashes, sizes, and timestamps. Never log keys, passwords, licenses, or decrypted media.
Do not merge these HRESULTs
| Result | Different boundary |
|---|---|
NS_E_DRM_MIGRATION_LICENSE_ALREADY_EXISTS | The target already contains the license being imported. |
NS_E_INVALID_DRMV2CLT_STUBLIB | The application is linked to the wrong DRM v2 client stub library. |
NS_E_DRM_MIGRATION_INVALID_LEGACYV2_SST_PASSWORD | The password for the legacy v2 secure-store entry is incorrect. |
Order the result event chain by timestamp; prefer the earliest specific result.
What a supported fix should change
Resolve this result at its producing boundary: export a fresh valid legacy data set from the source. A player reinstall, reboot or new license request is useful only when it changes the “migration invalid legacyv2 data” boundary and can be verified against the original evidence.
Representative case: A partial legacy store copy is used as migration input.
Common but unsafe responses
- Avoid editing migration images or combining data from different source machines. That changes evidence without demonstrating why it was produced.
- Avoid running concurrent playback or DRM operations against the source while migration owns it. That shortcut can create a second store, identity or policy problem.
- Do not reduce it to “DRM failed” in telemetry; retain the HRESULT, symbolic name, operation and object identity.
How to know the fix is real
Repeat the operation that originally returned it. Assert the exact HRESULT at the producing API in the failing “migration invalid legacyv2 data” fixture; then change only the decisive precondition and confirm that the corrected run completes without substituting a neighboring DRM result. After correcting it, verify the requested action and the final license-store, secure-clock, device or migration state relevant to “migration invalid legacyv2 data”.
Code-specific operational note
The symbolic phrase “migration invalid legacyv2 data” is the important search and telemetry key for it. Keep it beside the exact value 0xC00D2791; the official message “The legacy V2 data being imported is invalid” is useful to users, but it does not identify the producing API, object generation or protected identity on its own.
Technical references
- Backing up and restoring DRM licenses — platform documentation used to distinguish it from adjacent results.
- Obtaining the required DRM library — official Windows Media DRM context for it.
- DRM client programming guide — API and state rules relevant to this boundary.
- Windows Media DRM error codes
Looking for a different code? Search another status or error code.
