| Previous | Next |
| kIOUSBInvalidSSEndpoint | kIOUSBDeviceCountExceeded |
kIOUSBStreamsNotSupported
Streams are a controller capability
kIOUSBStreamsNotSupported is specific to the USB Streams feature. It does not say that every transfer to the device is impossible; it says that the requested Streams path cannot be used because the active xHCI controller does not support it. The important distinction is that Streams are part of the USB and host-controller transfer model, not a choice that can be enabled by creating more application threads or queues.
Do not substitute this status with kIOUSBInvalidSSEndpoint. The latter concerns an invalid descriptor set, whereas this result can be returned after the device and endpoint were accepted but the controller could not provide the requested feature. A retry on the same controller will not add Streams support.
Decide whether a fallback is valid
- Identify the controller actually owning the device, the negotiated USB speed, the endpoint type, and whether the device protocol requires multiple USB streams or merely benefits from them.
- Inspect the controller capability and driver logs together with the device descriptors; an endpoint advertised by the device does not prove that every host controller can service its Streams mode.
- Use a non-Streams path only when the device protocol documents it as equivalent. Do not collapse independently ordered protocol flows into one queue merely to suppress the error.
- For a product that requires Streams, test it on the target host-controller families during qualification rather than treating this as a transient USB timeout.
References
Looking for a different code? Search another status or error code.