| Previous | Next |
| kIOUSBLinkErr | kIOUSBInvalidSSEndpoint |
kIOUSBTooManyTransactionsPending
Back-pressure at submission time
kIOUSBTooManyTransactionsPending is not a completion error from the USB device. The IOUSBFamily definition says that the request cannot be submitted because it would exceed the permitted number of pending transactions. It is therefore a queue-capacity or flow-control signal from the host-side stack or controller path.
The correct response depends on request ownership and ordering. Dropping one arbitrary request may corrupt a protocol sequence, while blindly retrying in a tight loop can prevent older requests from completing. The application needs a bounded queue and a completion-driven way to release capacity.
What to measure
- Track queue depth per endpoint and transfer direction, not only the total number of requests for the USB device.
- Log submission time, completion time, cancellation, timeout, and returned-request events to identify the request that stopped the queue from draining.
- Distinguish application back-pressure from a controller that is suspended, reset, or stalled; those conditions can cause the apparent queue buildup.
- Apply a bounded retry policy driven by completion or state change rather than continuously resubmitting the same request.
References
Looking for a different code? Search another status or error code.