| Previous | Next |
| kIOUSBTooManyTransactionsPending | kIOUSBStreamsNotSupported |
kIOUSBInvalidSSEndpoint
SuperSpeed endpoint descriptors are a set
kIOUSBInvalidSSEndpoint is raised by the macOS USB stack when it cannot accept an endpoint declared by a SuperSpeed device. The definition in IOKit/usb/USB.h specifically calls out a missing Endpoint Companion Descriptor as the usual cause. For SuperSpeed, the endpoint description is not limited to the ordinary endpoint descriptor: the companion descriptor carries transport parameters used to configure the endpoint.
This is therefore a descriptor or configuration problem, not a generic transfer failure. It differs from kIOUSBEndpointCountExceeded, where a valid endpoint cannot be created because the controller has reached a limit, and from kIOUSBStreamsNotSupported, where the endpoint is valid but the host controller lacks a requested capability.
What to inspect
- Capture the complete configuration-descriptor tree from the device, including the active configuration, interface number, alternate setting, endpoint descriptor, and the descriptor immediately following it.
- Check descriptor ordering, lengths, endpoint address, transfer type, and the SuperSpeed companion data rather than inspecting only the endpoint number reported by an application.
- Record the negotiated bus speed and the controller path. A device that exposes different configurations or alternate settings can make the failure appear only on one path.
- Correct the device firmware or descriptor generator. Retrying the same request cannot make an invalid descriptor chain valid.
References
- Apple: IOUSBFamily error codes
- Apple: SuperSpeed Endpoint Companion Descriptor
- Apple: USB device descriptors
Looking for a different code? Search another status or error code.