What does macOS kernel return 0xE00002C6 (kIOReturnBadMessageID) mean?

 
Previous Next
kIOReturnExclusiveAccess kIOReturnUnsupported

kIOReturnBadMessageID

Identifier mismatch, not payload size

kIOReturnBadMessageID means that sent and received messages had different msg_id values. It points to disagreement about the operation or message identity in a communication path. The header does not describe a hardware fault, so replacing a cable or retrying a device transfer is usually not the first useful response.

Look for an interface-version mismatch, an incorrect selector or notification ID, request routing to the wrong service, or a lifecycle race in which a response belongs to a different operation. This condition is distinct from kIOReturnMessageTooLarge, where the problem is message size rather than identity.

How to diagnose it

  • Capture the expected and received identifiers, interface version, selector, and service instance.
  • Verify that both sides were built against compatible headers and use the same protocol or method definition.
  • Correlate requests and responses with a per-operation identifier so that stale completions are visible.
  • Invalidate and rediscover a service after reset or removal before accepting messages from a new instance.

References


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