| Previous | Next |
| kIOReturnOverrun | kIOReturnNoCompletion |
kIOReturnDeviceError
A device-level symptom with no embedded cause
kIOReturnDeviceError is labelled in the common header as a device not working properly. It is more device-oriented than a generic kIOReturnIOError, but it still does not name the failed component, bus, media, power state, or protocol step. Treat it as a symptom that must be correlated with the service and request that produced it.
Before retrying a state-changing command, determine whether the device may have partially completed it. A reset, reconnect, or rediscovery can be appropriate only when the family’s lifecycle rules permit it. Reusing a cached interface after a device reset or removal can obscure the original condition with later failures.
Evidence that helps
- Record the device identity, active configuration, request type, operation direction, and any preceding timeout, reset, or power event.
- Check system and driver diagnostics for the responsible IOKit family rather than relying on the common result alone.
- Distinguish a reproducible request-specific failure from a condition that follows physical removal, power loss, or re-enumeration.
- Retry only idempotent operations after the target has been validated again.
References
- Apple XNU source: IOReturn.h
- Apple: Introduction to IOKit Fundamentals
- Apple: Managing device removal
Looking for a different code? Search another status or error code.