| Previous | Next |
| NS_E_DRM_MIGRATION_OPERATION_CANCELLED | NS_E_DRM_MALFORMED_CONTENT_HEADER |
NS_E_DRM_MIGRATION_OBJECT_IN_USE
The exact DRM condition
NS_E_DRM_MIGRATION_OBJECT_IN_USE is Windows Media DRM HRESULT 0xC00D279B. It identifies the migration object already owns an active operation. 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.
The built-in message summarizes the user-visible outcome, while the symbolic phrase “migration object in use” preserves the exact WMDRM boundary for diagnosis. For this code, the proof step is to identify current method, callback and completion state.
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.
Evidence worth preserving
Capture the first NS_E_DRM_MIGRATION_OBJECT_IN_USE occurrence before retry or teardown changes state. The smallest useful record contains:
- Code-specific proof: identify current method, callback and completion state.
- 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.
Related codes and the diagnostic split
| Result | Different boundary |
|---|---|
NS_E_DRM_MIGRATION_OPERATION_CANCELLED | The migration workflow was canceled before completion. |
NS_E_DRM_UNABLE_TO_CREATE_MIGRATION_IMPORTER_OBJECT | The DRM runtime cannot create the migration-importer object required for this operation. |
NS_E_DRM_MIGRATION_NOT_SUPPORTED | The selected importer plug-in does not support this migration format or operation. |
Order the NS_E_DRM_MIGRATION_OBJECT_IN_USE event chain by timestamp; prefer the earliest specific result.
Diagnostic sequence
- Preserve
NS_E_DRM_MIGRATION_OBJECT_IN_USE, the calling interface and the first lower-level status before a wrapper replaces it. - Correlate
NS_E_DRM_MIGRATION_OBJECT_IN_USEwith one KID/license ID, content hash, device certificate or migration operation ID for this path. - Reconstruct the state transition immediately preceding “migration object in use” instead of starting from the final player dialog.
- Prove the boundary by ensuring you can identify current method, callback and completion state.
- After you wait for or cancel the current operation before reusing the object, verify both the requested right and the final store/device state.
Correcting the producing condition
Resolve NS_E_DRM_MIGRATION_OBJECT_IN_USE at its producing boundary: wait for or cancel the current operation before reusing the object. A player reinstall, reboot or new license request is useful only when it changes the “migration object in use” boundary and can be verified against the original evidence.
Representative case: Two threads call import on the same migration object.
Actions that do not prove a fix
- Avoid running concurrent playback or DRM operations against the source while migration owns it. That changes evidence without demonstrating why
NS_E_DRM_MIGRATION_OBJECT_IN_USEwas produced. - Avoid editing migration images or combining data from different source machines. That shortcut can create a second store, identity or policy problem.
- Do not reduce
NS_E_DRM_MIGRATION_OBJECT_IN_USEto “DRM failed” in telemetry; retain the HRESULT, symbolic name, operation and object identity.
Regression check
Repeat the operation that originally returned NS_E_DRM_MIGRATION_OBJECT_IN_USE. Assert the exact HRESULT at the producing API in the failing “migration object in use” fixture; then change only the decisive precondition and confirm that the corrected run completes without substituting a neighboring DRM result. After correcting NS_E_DRM_MIGRATION_OBJECT_IN_USE, verify the requested action and the final license-store, secure-clock, device or migration state relevant to “migration object in use”.
Code-specific operational note
The symbolic phrase “migration object in use” is the important search and telemetry key for NS_E_DRM_MIGRATION_OBJECT_IN_USE. Keep it beside the exact value 0xC00D279B; the official message “Migration object is already in use and cannot be called until the current operation completes.” 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 this result from adjacent results.
- Obtaining the required DRM library — official Windows Media DRM context for
NS_E_DRM_MIGRATION_OBJECT_IN_USE. - 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.