| Previous | Next |
| kIOUSBEndpointNotFound | kIOUSBNotEnoughPipesErr |
kIOUSBNotEnoughPowerErr
The failure is tied to the selected configuration
kIOUSBNotEnoughPowerErr means that the stack cannot provide enough power for the selected USB configuration. It is not a generic statement that the device is disconnected or that every configuration is unusable. A USB configuration descriptor declares a maximum power requirement, and Apple documents its MaxPower field in units of 2 mA.
Keep this separate from kIOUSBDeviceCountExceeded and kIOUSBEndpointCountExceeded. Those describe controller capacity. This result concerns the power budget offered by the parent port or hub for the configuration the device is trying to select.
Verify the declared budget and the actual path
- Capture the complete configuration descriptor, including its power attributes and
MaxPower, as well as the configuration value the stack attempted to select. - Identify the immediate parent hub or dock, whether it is self-powered or bus-powered, and the allocation available on that upstream path.
- Where the device exposes a lower-power configuration that still meets the product requirements, select it deliberately and verify the resulting endpoint and function set.
- Do not reduce the descriptor's declared power merely to bypass the check. A declaration that understates real demand can exchange an explicit allocation failure for resets, brownouts, or unreliable transfers.
References
- Apple: kIOUSBNotEnoughPowerErr
- Apple: IOUSBConfigurationDescriptor
- Apple: Mac OS USB DDK API reference
Looking for a different code? Search another status or error code.