What does macOS kernel return 0xE000400E (kIOUSBNotSent1Err) mean?

 
Previous Next
kIOUSBBufferUnderrunErr kIOUSBNotSent2Err

kIOUSBNotSent1Err

The transaction did not reach normal bus execution

kIOUSBNotSent1Err is one of two legacy IOUSBFamily statuses whose built-in description is simply “Transaction not sent.” That is significant: the operation did not complete with a device response, and the return value alone does not state whether the request was rejected before scheduling, abandoned during a controller-state change, or lost with a larger failure path.

Apple's public header exposes both kIOUSBNotSent1Err and kIOUSBNotSent2Err but does not document a protocol-level distinction between the suffixes. Diagnostics should retain the exact value, yet code should not invent a device-side meaning from the number in the name.

How to investigate without guessing

  • Correlate this status with the request submission result, controller state, port state, and any preceding reset, suspend, disconnect, or endpoint halt.
  • Record whether the request was queued asynchronously and whether its ownership was returned to the caller.
  • Check whether a failure before submission is reported elsewhere in the same operation; the first lower-level status is usually more specific.
  • Do not retry a state-changing command solely because it was not sent; first establish whether the request was ever accepted by the controller queue.

References


Looking for a different code? Search another status or error code.