| Previous | Next |
| MF_E_UNSUPPORTED_STATE_TRANSITION | MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS |
MF_E_UNRECOVERABLE_ERROR_OCCURRED
Where the result originates
MF_E_UNRECOVERABLE_ERROR_OCCURRED means the current Media Foundation object has marked its pipeline state unusable after a prior fatal failure.
The result comes from the source, session, transform, or sink that entered a terminal error state. A representative case 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. A wrapper, user interface, or fallback path can report a less specific message afterward.
Evidence that survives retries
- Exact request: method name, all identifiers, units, flags, stream number, requested action, and this result.
- Object state: the earlier failure event, first HRESULT, object instance, shutdown status, outstanding callbacks, and any device-removal or stream error.
- Correlation: callback cookie, object instance, 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 comparison for this result changes exactly that variable; changing content, account, proxy, device, components, and version together makes attribution impossible.
| Outcome | Interpretation |
|---|---|
| The same operation now succeeds | The changed precondition was relevant to the failure. |
| A more specific earlier HRESULT appears | Preserve it; this result was probably a wrapper or terminal state. |
| The operation advances and fails later | The condition is fixed even though the complete workflow still has another defect. |
| No behavior changes | Restore the original 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. |
MF_E_UNSUPPORTED_CAPTION | The caption of the given URL is unsupported. |
MF_E_INVALID_POSITION | The operation on the current offset is not permitted. |
The important distinction is this: MF_E_UNEXPECTED may describe one unexpected call result without necessarily declaring the object unrecoverable. Use the symbolic constant and 0xC00D36DE value to distinguish states that share a similar visible message.
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 it.
References
Looking for a different code? Search another status or error code.