What does macOS kernel return 0x10000001 (MACH_SEND_IN_PROGRESS) mean?

 
Previous Next
MACH_MSG_MASK MACH_SEND_INVALID_DATA

MACH_SEND_IN_PROGRESS

An internal wait marker

MACH_SEND_IN_PROGRESS is declared by current XNU headers as internal-use only. It represents a thread waiting in the send path; it is not one of the normal public completion results that application code should handle as a stable API outcome. A full message queue, timeout option, interrupt, or port lifecycle event can determine the eventual public result after the wait ends.

If this constant appears in an application log, first establish where it was obtained. Kernel tracing, debugger inspection, crash analysis, private wrappers, or code that records an intermediate thread state can expose it. Treating it as equivalent to MACH_SEND_TIMED_OUT is incorrect: “in progress” describes the wait, while timeout is a completed operation result.

What to inspect

  • Capture the final mach_msg return value and the options used, especially timeout and interrupt behavior.
  • Check destination queue pressure and whether the receive right remained alive during the wait.
  • Do not persist this internal value as a cross-version protocol status.
  • When diagnosing a stuck thread, inspect its wait reason and the receiving service rather than retrying from another thread without limits.

References


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