dial tcp: i/o timeout
Go couldn't connect in time
Seen in Go (net, net/http), Docker, Kubernetes, Terraform
Go could not open the TCP connection, or finish the DNS lookup for it, before the dial timeout.
Common causes
- A firewall or security group drops packets to the address and port.
- The host is down or the address is wrong.
- If the message contains "lookup ... on ...:53", the DNS server itself did not answer.
- Outbound traffic needs a proxy that is not configured.
How to fix it
- Check the address and port in the message are reachable from the same machine.
- For "lookup ... on ...:53" timeouts, check the resolver in /etc/resolv.conf or the cluster DNS.
- Set HTTPS_PROXY and NO_PROXY if the network requires a proxy.
Got a different message? Paste it into the error explainer.
Related errors
- requests.exceptions.ConnectTimeout · Python couldn't open the connection in time
- ConnectionRefusedError: [Errno 111] Connection refused · Nothing is listening on that port
- java.net.ConnectException: Connection refused · Nothing is listening on that port
- A connection attempt failed because the connected party did not properly respond after a period of time · The connection timed out
- No connection could be made because the target machine actively refused it · Nothing is listening on that port
- [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed · Python couldn't verify the server's certificate
- certificate verify failed: Hostname mismatch, certificate is not valid for · The certificate doesn't cover this hostname
- Max retries exceeded with url · requests gave up connecting to the URL
- socket.gaierror: [Errno -2] Name or service not known · Python couldn't resolve the hostname
- socket.gaierror: [Errno -3] Temporary failure in name resolution · Python couldn't reach a DNS resolver
- requests.exceptions.ReadTimeout · The server took too long to respond
- http.client.RemoteDisconnected: Remote end closed connection without response · The server closed the connection without replying