| Previous | Next |
| kIOUSBNotEnoughPowerErr | kIOUSBNoAsyncPortErr |
kIOUSBNotEnoughPipesErr
A pipe is the host-side route to an endpoint
kIOUSBNotEnoughPipesErr reports that there are not enough pipes in the interface. In USB terminology, a pipe is the host software's communication path to a device endpoint under the active configuration and interface setting. This is therefore not the same as a missing endpoint descriptor: the endpoint may exist, while the host-side interface setup cannot supply every requested pipe.
It is useful to separate this condition from kIOUSBTooManyPipesErr. The former describes insufficient available pipes for the interface's needs; the latter describes an attempt to exceed a pipe limit. Both require inspecting the active interface and alternate setting rather than treating the USB device as a single undifferentiated object.
Check the active interface context
- Record the configuration value, interface number, alternate setting, and all endpoint descriptors for that setting.
- Verify which pipes were already opened or retained by the same client and whether a prior close completed.
- Check whether an alternate setting changes the endpoint set or required pipe count.
- Do not diagnose this as a USB bandwidth failure unless the controller reports a separate scheduling or bandwidth status.
References
Looking for a different code? Search another status or error code.