What does macOS kernel return 2048 (MACH_MSG_IPC_KERNEL) mean?

 
Previous Next
MACH_MSG_VM_KERNEL MACH_MSG_VM_SPACE

MACH_MSG_IPC_KERNEL

Kernel IPC pressure, not a bad port name

MACH_MSG_IPC_KERNEL augments another Mach send or receive result when the kernel lacks resources needed to transfer an IPC capability. Here “capability” means a Mach port right carried in the message header or body. The bit does not mean that the sender supplied an invalid right; invalid names, dispositions, and ownership have their own base error codes.

On receive, resource failures can occur after the message has left the queue. A header failure destroys rights and memory associated with the message, while a body failure can leave some elements transferred and others replaced with null names. During a failed send, the same bit can describe an incomplete pseudo-receive that attempted to return message contents to the caller.

What to inspect

  • Extract the base result and determine whether the failure occurred in a receive header, receive body, or send rollback path.
  • Count port descriptors and verify their dispositions before retrying.
  • Distinguish kernel IPC-resource pressure from MACH_MSG_IPC_SPACE, which means the receiving task has no room for another port name.
  • Make cleanup tolerate missing or renamed rights; do not assume the original numeric names survived.

References


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