What does macOS kernel return 0xE00002E8 (kIOReturnOverrun) mean?

 
Previous Next
kIOReturnUnderrun kIOReturnDeviceError

kIOReturnOverrun

A buffer or queue could not absorb the stream

kIOReturnOverrun means that data exceeded the capacity of the relevant I/O buffer, FIFO, DMA ring, or queue. It is not automatically a USB error and does not identify the exact layer that overflowed. The driver family that returned the code determines whether the overrun occurred in device hardware, a controller ring, a kernel queue, or a user-space-facing transfer path.

Unlike kIOReturnUnderrun, the failure is caused by data arriving or being produced faster than the next stage can consume it. Retrying the same operation immediately can worsen the saturation. First determine whether data was dropped or whether the driver stopped the stream before any irreversible loss occurred.

What to inspect

  • Capture queue capacities, high-water marks, completion latency, packet sizes, and the number of transfers kept in flight.
  • Check whether the consumer thread, callback, or storage path is blocked while the device continues producing data.
  • For periodic transports, validate negotiated packet size and interval against the sustained rate the application can drain.
  • Use backpressure, flow control, or a documented lower-rate mode when the protocol supports it; do not silently discard data unless that is an explicit design decision.

References


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