| Previous | Next |
| kIOReturnIPCError | kIOReturnNotPrivileged |
kIOReturnNoDevice
What this result means
kIOReturnNoDevice is the IOKit result for an operation whose target device or service is no longer available. It is often seen after a peripheral is unplugged, a USB device re-enumerates, a storage device disappears, or the service object that supplied a user-space handle has terminated. The number does not identify the failed bus by itself: IOKit return values are shared by many hardware families.
Do not continue using a handle merely because the application still has its numeric value. A device can disappear between discovery and the next transfer, and a later reconnect can create a new registry object with different configuration and interfaces. This is a lifecycle boundary, not a signal to retry the same request indefinitely.
Useful recovery steps
- Stop outstanding work for the target and invalidate the application’s cached device or interface object.
- Listen for the relevant removal or termination notification, then perform discovery again when the device is present.
- Record the registry path, vendor/product identifiers, active configuration, and operation being attempted; a physical reconnection and a driver restart are different events.
- Retry only after a fresh open and configuration step, and only for an operation that is safe to repeat.
References
- Apple IOReturn.h reference
- Apple IOKit Fundamentals: Architectural Overview
- libusb device lifecycle and interface claims
Looking for a different code? Search another status or error code.