| Previous | Next |
| ENOSTR | ENOSTR |
ETIMEDOUT
No timely completion is not an active refusal
ETIMEDOUT says that the operation did not complete before a relevant timeout. It is different from ECONNREFUSED, where the destination actively rejects connection establishment, and from ENETUNREACH, where the local stack has no route to begin with.
A timeout does not prove that the remote host is down. Packets can be filtered, lost, delayed, routed through a failing path, or accepted by a peer that never completes the application's expected exchange. The observed syscall and timeout policy are essential context.
What to capture
- Record the operation type, socket state, local and remote addresses, start time, deadline source, and any transport retransmission or application retry counters.
- Distinguish the kernel's transport timeout from an application deadline. They can fire at different times and imply different ownership of cancellation.
- Preserve whether any bytes or protocol acknowledgements were received before the timeout; that changes whether a retry can safely repeat the operation.
Useful comparison
ECONNRESET is an explicit reset outcome. ETIMEDOUT is absence of a successful outcome within time. The two need different evidence and should not share a single “network failed” bucket.
References
Looking for a different code? Search another status or error code.
