What does HRESULT 0x8898009B (MILERR_QPC_TIME_WENT_BACKWARD) mean?

 
Previous Next
MILERR_MAX_TEXTURE_SIZE_EXCEEDED MILERR_DXGI_ENUMERATION_OUT_OF_SYNC

MILERR_QPC_TIME_WENT_BACKWARD

MILERR_QPC_TIME_WENT_BACKWARD is a Windows Media Integration Layer (MIL) HRESULT. It indicates that the high-resolution timing value used by MIL moved backward, making timing-based rendering calculations unreliable.

What to check for MILERR_QPC_TIME_WENT_BACKWARD

  • Record CPU, power-management, virtualization, and timing context when the anomaly occurs.
  • Avoid assuming that elapsed time is always positive without guarding timing calculations.
  • Check system firmware and virtualization settings if the error repeats on the same machine.

Microsoft documentation about WPF hardware-accelerated rendering

Diagnostic interpretation of MILERR_QPC_TIME_WENT_BACKWARD

MILERR_QPC_TIME_WENT_BACKWARD has the HRESULT value 0x8898009B. AllStat records the condition as “QueryPerformanceCounter returned a time in the past.”. For MILERR_QPC_TIME_WENT_BACKWARD, 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_QPC_TIME_WENT_BACKWARD

  • Record the exact COM method or Windows API, its input object, the calling thread, and the full 0x8898009B 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_QPC_TIME_WENT_BACKWARD or the milerr / qpc / time / went / backward operation.
  • For MILERR_QPC_TIME_WENT_BACKWARD, 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_QPC_TIME_WENT_BACKWARD

Retry MILERR_QPC_TIME_WENT_BACKWARD only when the owning API documents a transient state or after the condition described as “QueryPerformanceCounter returned a time in the past.” has changed. For MILERR_QPC_TIME_WENT_BACKWARD, 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.