| Previous | Next |
| NS_DRM_E_MIGRATION_TARGET_MACHINE_LESS_THAN_LH | NS_E_DRM_HARDWAREID_MISMATCH |
NS_DRM_E_MIGRATION_IMAGE_ALREADY_EXISTS
What failed in WMDRM
NS_DRM_E_MIGRATION_IMAGE_ALREADY_EXISTS is Windows Media DRM HRESULT 0xC00D278E. It identifies a migration image already exists for the selected operation or destination. The useful scope 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; it is not a generic statement that the media player, network or file system failed.
Record image identity, owner and completion state.
Evidence worth preserving
The smallest useful record contains:
- Code-specific proof: record image identity, owner and completion state.
- Protected identity: migration image identity, hash and creation time.
- Operation state: legacy V2 secure-store entry and supplied password.
- Persistence or transport: importer plug-in availability and current operation state.
- Security context: per-license duplicate or import result.
- Correlation point: source and target OS versions and user SIDs.
The surrounding protocol and store state
Migration is not equivalent to copying license-store files: the importer validates source state, target support and protected identities. A migration image, target-state corruption and an already imported license are independent outcomes and should not be collapsed into one generic restore failure.
Diagnostic sequence
- Locate the earliest API return, callback or event containing this result and
0xC00D278E. - Identify the exact content, license, store, device or migration object instance involved in “migration image already exists”.
- Determine whether “migration image already exists” occurred before network exchange, during response validation, while enforcing policy, or while committing protected state.
- Perform the code-specific check: record image identity, owner and completion state.
- Make one targeted change — reuse/finish or remove it only through the supported migration workflow — and repeat the same producing operation.
Related codes and the diagnostic split
| Result | Different condition |
|---|---|
NS_DRM_E_MIGRATION_TARGET_MACHINE_LESS_THAN_LH | The target operating system is older than the migration mechanism supports. |
NS_DRM_E_MIGRATION_SOURCE_MACHINE_IN_USE | The source DRM environment is busy with another operation during migration. |
NS_E_INVALID_DRMV2CLT_STUBLIB | The application is linked to the wrong DRM v2 client stub library. |
Correcting the producing condition
To correct this, reuse/finish or remove it only through the supported migration workflow.
Representative case: A retry attempts to create a second image without closing the first operation.
Actions that do not prove a fix
- Avoid running concurrent playback or DRM operations against the source while migration owns it.
- Avoid editing migration images or combining data from different source machines.
- Do not reduce this result to “DRM failed” in telemetry; retain the HRESULT, symbolic name, operation and object identity.
Regression check
After the repair, recreate the WMDRM object and run the smallest reproducer. Confirm that 0xC00D278E no longer occurs, that the intended license action completes, and that no store, certificate, clock or migration warning replaces it.
Code-specific operational note
The user-facing message “Migration Image already exists. Contact Microsoft product support.” describes the visible condition but does not identify the producing API, object instance, or protected identity by itself.
Technical references
- Backing up and restoring DRM licenses — API and state rules relevant to this result.
- Obtaining the required DRM library — platform documentation used to distinguish this result from adjacent results.
- DRM client programming guide — official Windows Media DRM context.
- Windows Media DRM error codes
Looking for a different code? Search another status or error code.