What does macOS kernel return 0xE00002E0 (kIOReturnNoFrames) mean?

 
Previous Next
kIOReturnNoInterrupt kIOReturnMessageTooLarge

kIOReturnNoFrames

No DMA frames were queued

kIOReturnNoFrames identifies a queueing failure: the DMA operation reached a path that had no transfer frames enqueued. A “frame” here is a driver or controller transfer unit, not necessarily a video frame or a file block. The result is therefore most useful when interpreted with the API that builds and submits descriptors for the device.

It is distinct from a hardware timeout. The device may be present and healthy, but the producer side never supplied work to the DMA engine or released it before the engine could use it. With asynchronous I/O, lifetime errors are common: a buffer, descriptor, or connection can be invalidated before its completion callback runs.

Useful checks

  • Trace descriptor creation, queue submission, cancellation, and completion for one failed request.
  • Confirm that the submission queue is fed before the device is armed and that the queue is not cleared during a mode change, suspend, or close.
  • Keep the buffer and request context alive until the API reports completion or cancellation.
  • Log the number of queued frames immediately before submission; it separates an empty producer queue from a controller execution failure.

References


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