| Previous | Next |
| ENOTCONN | ETOOMANYREFS |
ESHUTDOWN
ESHUTDOWN is Solaris errno value 143. Oracle defines it for a request to send data after the transport endpoint has already been shut down. The error describes local endpoint state: the application is asking to transmit after its own socket lifecycle has disallowed further sending.
Trace shutdown and send ordering
Solaris documents shutdown() modes that disallow further reception, further transmission, or both. If one thread performs a transmit-side or full shutdown while another thread still owns queued application writes, the later send path can reach ESHUTDOWN. Record the shutdown mode, socket identity, thread ordering, and every send attempted afterward.
Do not treat the errno as proof that the peer reset the connection. A remote reset can surface through other transport errors; ESHUTDOWN specifically says the endpoint had already entered a local shutdown state that forbids sending. The fix is usually in connection ownership and lifecycle coordination, or in creating a new connection when the protocol explicitly permits it, rather than retrying on the already shut-down endpoint.
References
- Oracle Solaris intro(2): ESHUTDOWN
- Oracle Solaris Programming Interfaces Guide: socket shutdown
- illumos errno.h
Looking for a different code? Search another status or error code.