What does macOS kernel return 0xE000405E (kIOUSBNotEnoughPipesErr) mean?

 
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.