What does macOS kernel return 0xE00002D8 (kIOReturnNotReady) mean?

 
Previous Next
kIOReturnOffline kIOReturnNotAttached

kIOReturnNotReady

Readiness is not presence

kIOReturnNotReady is a transient readiness result. IOKit recognizes the device, yet the driver cannot perform the requested action at that moment. Typical examples include media initialization, a device waking from a low-power state, a controller completing reset or enumeration, or a storage service waiting for a lower layer to become usable.

The practical distinction is important: a retry can be reasonable, but only after observing a state change or applying a bounded delay. Raising timeouts blindly is not a fix if readiness never arrives because of a failed configuration, missing media, power problem, or a driver that is not progressing through its startup path.

How to handle it safely

  • Capture the device state, power state, active configuration, and elapsed time since attach or wake.
  • Use the family’s readiness notifications or documented asynchronous completion path where available.
  • Back off retries and cap their total duration; expose a meaningful timeout to the caller.
  • After the deadline, distinguish an unchanged not-ready state from removal, no media, or no response before choosing recovery.

References


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