| Previous | Next |
| MACH_SEND_INVALID_MEMORY | MACH_SEND_TOO_LARGE |
MACH_SEND_NO_BUFFER
Kernel IPC resource pressure
MACH_SEND_NO_BUFFER is a resource-shortage result: the kernel could not allocate the message buffer needed to begin the send. It differs from a full destination queue. A queue-capacity problem normally causes waiting or MACH_SEND_TIMED_OUT when a timeout is enabled; this code indicates that the kernel could not obtain an internal IPC resource at that moment.
The documented send classification says this result implies that the call did nothing. That makes retry possible, but it should still be bounded. A tight retry loop can magnify memory pressure and conceal the workload that created it. Capture the broader process and system context before treating it as a one-off transient condition.
Operational response
- Apply backoff and a finite retry budget for idempotent work.
- Record message size, descriptor count, producer rate, and concurrent IPC load.
- Investigate memory pressure, unusually large complex messages, and unbounded producer queues.
- Use application-level shedding or batching when the receiver cannot keep up with demand.
References
- Mach Kernel Interface Reference: mach_msg
- Apple Kernel Programming Guide: Mach overview
- Apple XNU source: mach_msg implementation
Looking for a different code? Search another status or error code.
