| Previous | Next |
| MF_E_UNSUPPORTED_STATE_TRANSITION | MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS |
MF_E_UNRECOVERABLE_ERROR_OCCURRED
Locate the failing boundary
MF_E_UNRECOVERABLE_ERROR_OCCURRED (0xC00D36DE) is a failure result from Windows Media Foundation. The generated section above already contains the platform message; the useful extra information is that this result isolates the current Media Foundation object has marked its pipeline state unusable after a prior fatal failure.
The producer is the source, session, transform, or sink that entered a terminal error state, so diagnosis should begin with that object and its state rather than with a broad reinstall or an unrelated codec change. A representative occurrence is a hardware-backed stream loses its device, posts a fatal event, and every later request returns the terminal-state result.
Read the call sequence as a timeline. First, the application reaches the source, session, transform, or sink that entered a terminal error state. Next, the component evaluates the current Media Foundation object has marked its pipeline state unusable after a prior fatal failure. Only after the MF_E_UNRECOVERABLE_ERROR_OCCURRED checkpoint can a wrapper, user interface, or fallback path emit a less specific message.
Evidence that survives retries
- Exact request: method name, all identifiers, units, flags, stream number, requested action, and
MF_E_UNRECOVERABLE_ERROR_OCCURRED. - Object state: the earlier failure event, first HRESULT, object generation, shutdown status, outstanding callbacks, and any device-removal or stream error.
- Correlation for
MF_E_UNRECOVERABLE_ERROR_OCCURRED: callback cookie, object generation, URL or file identity, device identity, and timestamps from the same attempt. - Underlying cause: the first Win32, COM, network, driver, policy, or component error reported before
0xC00D36DE.
A controlled verification sequence
Use one controlled experiment: create a fresh object graph and replay the minimal input while preserving the earlier event log. A useful MF_E_UNRECOVERABLE_ERROR_OCCURRED comparison changes exactly that variable; changing content, account, proxy, device, components, and version together makes attribution impossible.
| Outcome | Interpretation |
|---|---|
| The same checkpoint now succeeds | The changed condition belongs to the producing boundary for MF_E_UNRECOVERABLE_ERROR_OCCURRED. |
| A more specific earlier HRESULT appears | Preserve it; MF_E_UNRECOVERABLE_ERROR_OCCURRED was probably a wrapper or terminal state. |
| The operation advances and fails later | The MF_E_UNRECOVERABLE_ERROR_OCCURRED condition is fixed even though the complete workflow still has another defect. |
| No behavior changes | Restore the MF_E_UNRECOVERABLE_ERROR_OCCURRED baseline and test another documented prerequisite instead of stacking workarounds. |
Nearby results that mean something else
| Related code | Why it is not interchangeable |
|---|---|
MF_E_BAD_STARTUP_VERSION | You are calling MFStartup with the wrong MF_VERSION; Mismatched bits; compare this boundary specifically with MF_E_UNRECOVERABLE_ERROR_OCCURRED. |
MF_E_UNSUPPORTED_CAPTION | The caption of the given URL is unsupported; compare this boundary specifically with MF_E_UNRECOVERABLE_ERROR_OCCURRED. |
MF_E_INVALID_POSITION | The operation on the current offset is not permitted; compare this boundary specifically with MF_E_UNRECOVERABLE_ERROR_OCCURRED. |
The important distinction is this: MF_E_UNEXPECTED may describe one unexpected call result without necessarily declaring the object unrecoverable. For MF_E_UNRECOVERABLE_ERROR_OCCURRED, searching only for the visible English message collapses different states; the constant and 0xC00D36DE retain the boundary.
Repair at the owning layer
Apply the narrow remedy: repair the first fatal cause and rebuild the affected object; retrying methods on the poisoned instance is not recovery. Then discard stale media objects, pending callbacks, cached provider sessions, or installer state as appropriate and rerun the exact request that originally returned MF_E_UNRECOVERABLE_ERROR_OCCURRED.
A confirmed MF_E_UNRECOVERABLE_ERROR_OCCURRED repair produces the requested stream, attribute, state transition, license decision, store callback, or setup result. Suppressing MF_E_UNRECOVERABLE_ERROR_OCCURRED, broadly enabling legacy controls, or falling back to unrelated content is not proof of repair.
References
- Media Foundation architecture — reference used for the
MF_E_UNRECOVERABLE_ERROR_OCCURREDcheckpoint. - Media Foundation error codes — reference used for the
MF_E_UNRECOVERABLE_ERROR_OCCURREDcheckpoint. - Media sources — reference used for the
MF_E_UNRECOVERABLE_ERROR_OCCURREDcheckpoint. - Media Foundation events — reference used for the
MF_E_UNRECOVERABLE_ERROR_OCCURREDcheckpoint.
Looking for a different code? Search another status or error code.