| Previous | Next |
| ETOOMANYREFS | ECONNREFUSED |
ETIMEDOUT
ETIMEDOUT means that a connection-oriented operation waited long enough for its governing timeout and no successful response arrived. On a client connection this is different from ECONNREFUSED: a refusal is an explicit rejection, while a timeout means the application did not receive a usable completion within the time limit.
Do not assume the timeout comes from one universal clock. The kernel's TCP retransmission and connection timers, a socket receive or send timeout, a proxy deadline, and an application's own request deadline are separate mechanisms. A product may cancel a request earlier than the operating system would report ETIMEDOUT, or it may receive the errno only after multiple retransmissions.
How to diagnose it
- Identify the failing stage: DNS resolution, TCP connect, TLS handshake, request write, or response read.
- Log configured deadlines and actual elapsed times at each layer.
- Check routing, packet loss, load-balancer health, server saturation, and whether traffic is silently filtered.
- Retry only operations whose semantics permit it; a timeout does not prove that the remote side did nothing.
FreeBSD connect() errors · RFC 9293: TCP · Linux connect(2)
Looking for a different code? Search another status or error code.