What does macOS kernel return 0x10000007 (MACH_SEND_INTERRUPTED) mean?

 
Previous Next
MACH_SEND_INVALID_VOUCHER MACH_SEND_MSG_TOO_SMALL

MACH_SEND_INTERRUPTED

Interruptible send semantics

MACH_SEND_INTERRUPTED means a software interrupt aborted a send that was waiting in the kernel. It is most relevant when the call used MACH_SEND_INTERRUPT; otherwise the user-space mach_msg wrapper normally retries an interrupted send. The result is therefore an explicit control-flow outcome chosen by the caller, not evidence that the destination rejected the request.

For this result, Mach uses the pseudo-receive recovery path to return the message as far as possible. That matters for complex messages containing moved rights or out-of-line memory. Do not assume the request was queued and do not free or duplicate transferred resources until their post-return state has been examined.

How to handle it

  • Decide whether cancellation is semantically valid for this specific RPC; an interrupted retry can otherwise duplicate work.
  • Preserve a request identifier and an acknowledgement path for operations with side effects.
  • Check the returned message buffer before retrying when descriptors transfer rights or memory.
  • Log the active Mach options and the cancellation or signal path that interrupted the thread.

References


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