What does macOS kernel return 0x1000000A (MACH_SEND_INVALID_RIGHT) mean?

 
Previous Next
MACH_SEND_INVALID_REPLY MACH_SEND_INVALID_NOTIFY

MACH_SEND_INVALID_RIGHT

A capability ownership error

MACH_SEND_INVALID_RIGHT means that a port-right descriptor in the message body requested a move, copy, or make operation that the calling task cannot perform. For example, moving a receive right requires owning that receive right; copying or moving a send right requires owning a send right; and making a send right requires access to a receive right. A port name alone is not permission.

Unlike the header, body descriptors do not have the same all-or-nothing atomicity guarantee. The documentation warns that body elements may be processed in different orders, and the kernel can destroy some or all of a malformed message. A recovery path must treat the message object as consumed or altered until it has been rebuilt from authoritative application state.

What to check

  • Inspect every descriptor’s port name, descriptor type, disposition, and intended transfer ownership.
  • Track who deallocates or moves each right; a successful earlier send can legitimately remove a right from the sender.
  • Avoid caching raw names as substitutes for explicit ownership tracking.
  • For complex RPCs, recreate descriptors from durable references before retrying.

References


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