| Previous | Next |
| ECONNRESET | EISCONN |
ENOBUFS
Kernel network resources, not necessarily process heap memory
ENOBUFS reports insufficient buffering resources for the socket operation. It is distinct from a process allocation failure: the pressure can be in socket queues, protocol control blocks, interface queues, or other network-stack resources even when the application can still allocate memory normally.
The error is also different from EMSGSIZE. A valid-sized message can fail with ENOBUFS because the stack cannot queue it now; an oversized atomic message can fail with EMSGSIZE even when buffers are plentiful.
What to measure before tuning
- Record socket buffer settings, queue occupancy or kernel network counters when available, transfer rate, message sizes, and the application's backpressure state.
- Determine whether the failure clusters by interface, destination, socket type, or burst workload instead of increasing buffer sizes globally.
- Verify that producers stop or shed load when writes cannot progress; an unbounded user-space queue only moves the resource failure to another layer.
Why a blind retry is incomplete
A retry may succeed after pressure subsides, but it does not explain whether data was queued or dropped before the error. Protocol-aware code must keep message ownership and retry safety explicit.
References
Looking for a different code? Search another status or error code.