| Previous | Next |
| NS_E_DRM_MIGRATION_IMPORTER_NOT_AVAILABLE | NS_DRM_E_MIGRATION_SOURCE_MACHINE_IN_USE |
NS_DRM_E_MIGRATION_UPGRADE_WITH_DIFF_SID
What failed in WMDRM
0xC00D278B maps to NS_DRM_E_MIGRATION_UPGRADE_WITH_DIFF_SID. Read it as a result from license and secure-state migration: migration or upgrade sees a different user SID than the protected source state expects. Keeping the “migration upgrade with diff sid” boundary intact prevents a later playback message from hiding the original DRM failure.
Record source and target SIDs and account-migration history.
Place in the DRM workflow
The workflow around this result matters: migration is not equivalent to copying license-store files: the importer validates source state, target support and protected identities. In addition, a migration image, target-state corruption and an already imported license are independent outcomes and should not be collapsed into one generic restore failure.
State to capture before retry
The smallest useful record contains:
- Code-specific proof: record source and target SIDs and account-migration history.
- Protected identity: importer plug-in availability and current operation state.
- Operation state: per-license duplicate or import result.
- Persistence or transport: source and target OS versions and user SIDs.
- Security context: migration image identity, hash and creation time.
- Correlation point: legacy V2 secure-store entry and supplied password.
A useful investigation order
- Locate the earliest API return, callback or event containing this result and
0xC00D278B. - Identify the exact content, license, store, device or migration object instance involved in “migration upgrade with diff sid”.
- Determine whether “migration upgrade with diff sid” occurred before network exchange, during response validation, while enforcing policy, or while committing protected state.
- Perform the code-specific check: record source and target SIDs and account-migration history.
- Make one targeted change — run the supported migration under the matching account context — and repeat the same producing operation.
Targeted fix
To correct this, run the supported migration under the matching account context.
Representative case: A profile is copied to a newly created account with a different SID.
What not to do first
- 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.
Nearby results with different meanings
| Result | Different condition |
|---|---|
NS_DRM_E_MIGRATION_SOURCE_MACHINE_IN_USE | The source DRM environment is busy with another operation during migration. |
NS_E_DRM_MIGRATION_IMPORTER_NOT_AVAILABLE | The required migration importer component is unavailable. |
NS_DRM_E_MIGRATION_TARGET_MACHINE_LESS_THAN_LH | The target operating system is older than the migration mechanism supports. |
Verification after correction
After the repair, recreate the WMDRM object and run the smallest reproducer. Confirm that 0xC00D278B 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 “A problem has occurred in the Digital Rights Management component during license migration. 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.