| Previous | Next |
| MACH_SEND_IN_PROGRESS | MACH_SEND_INVALID_DEST |
MACH_SEND_INVALID_DATA
The inline portion of the message did not pass send-side validation
MACH_SEND_INVALID_DATA is a Mach send result for invalid in-line data. It is raised while the kernel is validating the outgoing message, before the destination receives it. The status is about data carried directly in the message buffer; it is not a report that the destination port is unavailable, and it is not the out-of-line-memory case represented by MACH_SEND_INVALID_MEMORY.
For generated MIG-style calls, the visible RPC wrapper can hide the message layout that led to the failure. The useful boundary for diagnosis is therefore the exact buffer and message metadata submitted to mach_msg, not the later code that waits for a reply. Treat the attempted message as failed rather than assuming that part of its inline payload reached the server.
What to inspect
- Record the operation mask,
msgh_size, message identifier, and whether the message was marked complex. - Verify that the complete header, body count, descriptors, and inline payload were initialized by the same ABI and structure definitions.
- Compare the outgoing layout with the receiving service contract; do not infer a protocol format from the symbolic error alone.
- Separate this case from an invalid out-of-line pointer or an invalid descriptor disposition, which have their own Mach results.
References
- Apple XNU source: mach/message.h
- Mach Kernel Interface Reference: mach_msg
- GNU Mach Reference Manual: interprocess communication
Looking for a different code? Search another status or error code.
