What does HRESULT 0x8898008E (MILERR_NEED_RECREATE_AND_PRESENT) mean?

 
Previous Next
MILERR_NO_HARDWARE_DEVICE MILERR_ALREADY_INITIALIZED

MILERR_NEED_RECREATE_AND_PRESENT

MILERR_NEED_RECREATE_AND_PRESENT is a Windows Media Integration Layer (MIL) HRESULT. It indicates a potentially recoverable presentation failure that requires recreating resources, rerendering, and presenting again.

What to check for MILERR_NEED_RECREATE_AND_PRESENT

  • Release and recreate the affected render target, swap chain, or composition resources using the documented recovery path.
  • Render the current scene again only after the replacement resources are fully initialized.
  • Check for device removal, display changes, and driver resets that caused the failed presentation.

Microsoft documentation about WPF hardware-accelerated rendering

Diagnostic interpretation of MILERR_NEED_RECREATE_AND_PRESENT

MILERR_NEED_RECREATE_AND_PRESENT has the HRESULT value 0x8898008E. AllStat records the condition as “There has been a presentation error that may be recoverable. For MILERR_NEED_RECREATE_AND_PRESENT, the caller needs to recreate, rerender the entire frame, and reattempt present. There are two known case for this: 1) D3D Driver Internal error 2) D3D E_FAIL 2a) Unknown root cause b) When resizing too quickly for DWM and D3D stay in sync”. For MILERR_NEED_RECREATE_AND_PRESENT, in practice, interpret that wording at the boundary owned by the Windows component or COM interface that returned the HRESULT, rather than treating the value as a generic Windows message.

Evidence to capture for MILERR_NEED_RECREATE_AND_PRESENT

  • Record the exact COM method or Windows API, its input object, the calling thread, and the full 0x8898008E value before a wrapper converts it to an exception or Boolean result.
  • Capture any IErrorInfo text, activity identifier, event-log entry, and subsystem trace that mentions MILERR_NEED_RECREATE_AND_PRESENT or the milerr / need / recreate / and / present operation.
  • For MILERR_NEED_RECREATE_AND_PRESENT, compare the failing machine with a working one at the same configuration boundary: component version, policy, registration, identity, and target resource.

Retry and recovery for MILERR_NEED_RECREATE_AND_PRESENT

Retry MILERR_NEED_RECREATE_AND_PRESENT only when the owning API documents a transient state or after the condition described as “There has been a presentation error that may be recoverable. For MILERR_NEED_RECREATE_AND_PRESENT, the caller needs to recreate, rerender the entire frame, and reattempt present. There are two known case for this: 1) D3D Driver Internal error 2) D3D E_FAIL 2a) Unknown root cause b) When resizing too quickly for DWM and D3D stay in sync” has changed. For MILERR_NEED_RECREATE_AND_PRESENT, configuration, policy, format, and authorization failures normally require correction first; an immediate loop can hide the original call site and add secondary errors.


Looking for a different code? Search another status or error code.