| Previous | Next |
| kIOReturnNotReadable | kIOReturnNotAligned |
kIOReturnNotWritable
Why a write can be unsupported
kIOReturnNotWritable identifies a write capability mismatch. The target may be readable, present, and otherwise operational, yet it does not expose a writable path for the requested method, interface, endpoint direction, media state, or current configuration. This is different from a read-only policy error: a device can simply lack a write operation in that mode.
A generic “try again later” response is misleading. If the operation is unsupported by the selected interface, retries do not change the contract. First determine whether a different mode, alternate interface, privileged management path, or a distinct control request is required. For storage, also separate a non-writable capability from a media write-protect or policy decision.
Diagnostic steps
- Inspect the interface descriptor and endpoint direction used for the transfer.
- Check whether a configuration or alternate setting changes the device’s supported data paths.
- Verify the intended API: management/control commands and streaming writes often use different calls.
- Log device mode and any write-protection or policy state before treating the result as a hardware failure.
References
- Apple IOReturn.h reference
- Apple: Working With USB Device Interfaces
- USB-IF: USB 2.0 Specification
- libusb API reference
Looking for a different code? Search another status or error code.