| Previous | Next |
| kIOReturnNoMemory | kIOReturnIPCError |
kIOReturnNoResources
A broader shortage than storage capacity
kIOReturnNoResources reports resource shortage, not necessarily lack of free disk space or process heap memory. An IOKit family may need command slots, descriptors, DMA mappings, queue entries, controller state, pinned memory, or another limited resource before it can start the operation. The scarcity can be temporary if other work completes, but it can also expose a leak, an excessive queue depth, or an unsupported workload size.
It is useful to distinguish this status from kIOReturnNoMemory and kIOReturnNoSpace. The former points at allocation of memory; the latter at addressable data space. Here, the caller needs the operation context to learn what resource boundary was reached.
What to collect
- Record concurrent I/O count, buffer sizes, outstanding commands, and the exact operation that first failed.
- Check whether completions are being drained and released correctly before increasing global limits.
- Use bounded queues and back-pressure so callers do not create unbounded demand for controller resources.
- Compare a small, serialized request with the failing workload to separate a hard capability limit from resource exhaustion.
References
Looking for a different code? Search another status or error code.