What does macOS kernel return 0x10000010 (MACH_SEND_INVALID_HEADER) mean?

 
Previous Next
MACH_SEND_INVALID_TYPE MACH_SEND_INVALID_TRAILER

MACH_SEND_INVALID_HEADER

The header did not describe a valid send

MACH_SEND_INVALID_HEADER means the mach_msg_header_t fields are not a valid combination for a user-to-kernel send. The most important field is msgh_bits: it encodes the dispositions for the destination, reply, and voucher ports and identifies complex messages. Reserved or incompatible bits, a disposition not allowed for the supplied port field, or an inconsistent header can make the entire message invalid.

This condition is useful because it occurs before the message is delivered. It points to serialization or interface-construction logic, not to server availability. A patch that changes only the constant returned by a wrapper is not a fix; inspect the complete header and the code that populated it.

What to verify

  • Set port dispositions with the documented MACH_MSGH_BITS macros rather than numeric literals.
  • Clear reserved bits and initialize all header fields before assigning ports.
  • Confirm that the remote field carries a valid send or send-once right and that the local/reply field is compatible with the protocol.
  • Check structure packing and generated bindings when a message crosses language or ABI boundaries.

References


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