| Previous | Next |
| MF_S_MULTIPLE_BEGIN | MF_S_SINK_NOT_FINALIZED |
MF_S_ACTIVATE_REPLACED
Media Foundation activation object was replaced with an empty activation
MF_S_ACTIVATE_REPLACED is HRESULT 866045 (0x000D36FD) from Windows Media Foundation. AllStat describes it as “The activate could not be created in the remote process for some reason it was replaced with empty one.” In the Windows Media Player, Windows Media Format, DRM, or Media Foundation state machine, the value reports a nonfailure state that must not be collapsed into plain S_OK.
The MF_S_ACTIVATE_REPLACED status must be preserved until its code-specific output and next action have been processed.
Where the status is encountered
MF_S_ACTIVATE_REPLACEDcan appear during Windows Media Player library, playlist, store, or UI plug-in callbacks; capture the exact API, object, and phase because the same numeric success severity does not define the state by itself.MF_S_ACTIVATE_REPLACEDcan appear during Windows Media Format source, writer, DRM, publishing-point, or installation operations; capture the exact API, object, and phase because the same numeric success severity does not define the state by itself.MF_S_ACTIVATE_REPLACEDcan appear during Media Foundation topology activation and remote-component setup; capture the exact API, object, and phase because the same numeric success severity does not define the state by itself.
Keep MF_S_ACTIVATE_REPLACED attached to the operation that returned it. Interpreting MF_S_ACTIVATE_REPLACED outside that API contract can turn a normal continuation or partial result into an incorrect retry or false completion.
What must be true before accepting it
Verify that the caller detects the replacement and does not dereference it as the originally requested remote activation object. Validation of MF_S_ACTIVATE_REPLACED keeps a success-severity result from becoming a broader promise than the API made.
For MF_S_ACTIVATE_REPLACED, also confirm that returned outputs belong to the current operation generation and were not inherited from an earlier attempt.
Evidence and telemetry
- Preserve requested activation CLSID for
MF_S_ACTIVATE_REPLACED. - Preserve remote process and session for
MF_S_ACTIVATE_REPLACED. - Preserve replacement object identity for
MF_S_ACTIVATE_REPLACED. - Preserve topology node for
MF_S_ACTIVATE_REPLACED. - Preserve fallback selected for
MF_S_ACTIVATE_REPLACED.
For MF_S_ACTIVATE_REPLACED, also record UTC time, process and thread IDs, component version, operation generation, and a correlation ID. Keep sensitive MF_S_ACTIVATE_REPLACED content out of logs; use lengths, hashes, GUIDs, and policy-safe metadata where possible.
Diagnostic sequence
- Capture raw
0x000D36FDandMF_S_ACTIVATE_REPLACEDbefore exceptions, signed formatting, or a generic success wrapper removes the symbolic value. - Identify the interface, method, callback, service, driver, or broker that returned
MF_S_ACTIVATE_REPLACED, including component version, process, thread, and correlation ID. - Prove the decisive condition for
MF_S_ACTIVATE_REPLACED: the caller detects the replacement and does not dereference it as the originally requested remote activation object. - For
MF_S_ACTIVATE_REPLACED, inspect every output, count, object handle, callback, queue entry, media item, report, transaction, topology element, or signaling response the call produced. - Compare state immediately before and after
MF_S_ACTIVATE_REPLACEDand verify that ownership, lifetime, persistence, and user-visible effects match the status. - Reproduce
MF_S_ACTIVATE_REPLACEDwith the smallest input, then change only the suspected cause and confirm that the return value or postcondition changes as predicted.
Correct handling and recovery
Treat the returned placeholder as an unavailable activation, preserve the remote-process failure evidence, and choose a documented fallback or stop graph construction.
Do not use an unchanged tight retry loop for MF_S_ACTIVATE_REPLACED; it can duplicate effects or conceal a terminal state.
Difference from nearby results
This is informational replacement, not successful creation of the requested remote component.
For MF_S_ACTIVATE_REPLACED, the neighboring result changes whether output is final, more work remains, or fallback is required.
Practical scenario
A topology loader cannot instantiate a remote media sink and receives an empty activation placeholder. It removes that optional branch and reports degraded output.
A regression test should reproduce MF_S_ACTIVATE_REPLACED, assert all relevant outputs and state, then change only the decisive condition and verify ordinary completion or the expected neighboring result.
Developer and administrator guidance
Branch on MF_S_ACTIVATE_REPLACED before the ordinary SUCCEEDED(hr) path whenever output validity or the next method differs. Keep 0x000D36FD, the MF_S_ACTIVATE_REPLACED method, component build, and correlation ID in telemetry.
For MF_S_ACTIVATE_REPLACED, preserve first-occurrence context before restarting services, clearing stores, or rebuilding configuration. Document who owns continuation, cancellation, cleanup, fallback, and user messaging for MF_S_ACTIVATE_REPLACED.
References
- Microsoft: Windows Media Format SDK error and success codes — official Microsoft material relevant to
MF_S_ACTIVATE_REPLACED. - Microsoft: Windows Media Player SDK — official Microsoft material relevant to
MF_S_ACTIVATE_REPLACED. - Microsoft: Media Foundation SDK — official Microsoft material relevant to
MF_S_ACTIVATE_REPLACED. - Microsoft: HRESULT values — official Microsoft material relevant to
MF_S_ACTIVATE_REPLACED.
Looking for a different code? Search another status or error code.