| Previous | Next |
| kIOReturnBadMessageID | kIOReturnVMError |
kIOReturnUnsupported
Unsupported is a contract result
kIOReturnUnsupported means that the requested function is not supported by the target object in its present mode. It can be returned by a device family, an interface, a user client, a driver, or a particular controller implementation. The status does not imply that the device is absent or broken; it says that this API call is outside the supported contract for the object you selected.
The correct response is to inspect capabilities and configuration rather than retry. A device may expose several interfaces, alternate settings, or modes, and support can be conditional on the active one. However, switching modes must follow the device protocol; probing unsupported commands repeatedly can disturb a device or obscure the meaningful failure in logs.
How to narrow it down
- Confirm the exact IOKit family, interface, and device mode that returned the value.
- Read descriptors or capability properties before requesting optional features.
- Compare against a documented supported configuration rather than assuming hardware from the same product family behaves identically.
- Keep unsupported-operation handling separate from permission, busy, and no-device recovery paths.
References
- Apple IOReturn.h reference
- Apple IOKit Fundamentals: Architectural Overview
- Apple: Working With USB Device Interfaces
- libusb API reference
Looking for a different code? Search another status or error code.