Network Connectivity Errors
Refused connections, timeouts, resets, MTU problems and port exhaustion.
Understanding Network errors
Network errors are precise if you read them literally. Connection refused means a machine answered and actively rejected: nothing is listening on that port. Timeout means nothing answered at all, which points at a firewall silently dropping packets or a wrong address. Connection reset means the peer accepted then abruptly closed, often a proxy, a protocol mismatch, or an application crash. Distinguishing those three saves most of the debugging time.
How to debug Network errors
- Test layer by layer:
pingfor reachability,nc -zv host portfor the port, then the application protocol. Do not skip to the application layer. - Confirm what is listening locally with
ss -tulpn. "Connection refused" on localhost almost always means the service bound to127.0.0.1when it needed0.0.0.0, or vice versa. - Capture packets when the error is ambiguous:
sudo tcpdump -ni any port 443 and host x.x.x.x. A RST is visible; a silent drop is visible as unanswered SYNs. - For intermittent failures under load, check ephemeral port exhaustion and conntrack table limits (
ss -s,conntrack -S) before blaming the network. - Suspect MTU when small requests succeed and large ones hang. Test with
ping -M do -s 1472and reduce until packets pass.
Tools worth reaching for
ss -tulpnnc -zvtcpdumpmtrcurl --connect-timeoutiptables -L -n -v
All 35 Network errors
- Bandwidth limit exceededNetwork bandwidth quota has been exceeded, causing connection throttling or blocking.
- bind: address already in use (EADDRINUSE)Another process is already listening on the port, or a previous server instance did not shut down cleanly.
- chrony/NTP: clock not synchronised (Leap status: Not synchronised) NewThe host's clock is free running because it cannot reach a time source or has rejected the ones it has. Skew breaks…
- Circuit breaker openCircuit breaker pattern activated due to repeated failures, temporarily blocking requests to protect service.
- Connection pool exhaustedAll available connections in the connection pool are in use, unable to create new connections.
- Connection refusedThe target server is not accepting connections on the specified port. The service may be down, blocked by a firewall…
- Connection reset by peerThe remote server abruptly closed the connection, often due to server overload or configuration issues.
- Connection timeoutThe connection attempt took too long and was aborted. Network connectivity issues or server overload.
- Database connection timeoutDatabase connection attempt exceeded the timeout limit, often due to network latency or server load.
- Database deadlockDatabase transaction deadlock occurred, causing request to fail or timeout.
- Docker network errorDocker containers cannot communicate due to network configuration issues or DNS resolution problems.
- Elasticsearch cluster unavailableElasticsearch cluster is not responding, nodes are down, or cluster health is red/yellow with no available shards.
- Firewall blocking connectionNetwork firewall is blocking the connection attempt to the destination port or IP address.
- gRPC unavailablegRPC service is temporarily unavailable, often due to server overload or network issues.
- IPv6: Network is unreachable / no route to hostThe client prefers IPv6 or receives AAAA records but has no working IPv6 path. This can add long fallback delays or…
- kubectl: connection refusedkubectl cannot connect to the Kubernetes API server. Cluster may be down, kubeconfig incorrect, or network…
- Linux: duplicate IPv4 address detected on the network NewTwo hosts answer ARP for the same address, so switches flap the MAC between ports and traffic reaches whichever…
- Linux: possible SYN flooding on port X, sending cookies NewThe kernel's accept queue for a listening socket overflowed. Under a real flood that is the defence working, but far…
- Memory allocation failedServer ran out of memory while processing the request, causing allocation failures.
- MongoDB connection timeoutMongoDB client cannot establish connection within the specified timeout period. Server overload, network issues, or…
- MTU mismatch / fragmentation needed but DF setA link in the path has a smaller MTU than the sender used and the packet has Don't Fragment set. Common with VPNs…
- MySQL: Access denied for userMySQL authentication failed due to incorrect username, password, or insufficient privileges for the specified host.
- Network changedThe network configuration changed during the request, causing connection failure.
- Network is unreachableNo route to the destination network. Routing table may be missing entries or network interface is down.
- Port unreachableThe specified port on the target host is not accessible, likely blocked by firewall or service not running.
- psql: connection to server refusedPostgreSQL server is not accepting connections. Server may be down, wrong host/port, or connection limits exceeded.
- QUIC handshake failed / UDP 443 blockedHTTP/3 over QUIC requires UDP/443. Corporate networks and firewalls often block it, forcing fallback to TCP or causing…
- Redis connection errorUnable to connect to Redis server, often due to authentication, network, or configuration issues.
- Service mesh routing errorService mesh (Istio, Linkerd) failed to route request properly due to configuration or policy issues.
- ssh: connect to host X port 22: Connection refusedSSH daemon is not running on the target host, port 22 is blocked, or host is unreachable.
- WebRTC: ICE connection failed NewThe two peers could not find a working path between them. Direct and STUN reflexive candidates fail behind symmetric…
- WebSocket connection failedUnable to establish WebSocket connection, often due to proxy issues or unsupported protocols.
- WebSocket frame too largeWebSocket frame size exceeds the maximum allowed limit, connection terminated.
- WebSocket protocol errorViolation of WebSocket protocol specification, often due to malformed frames or incorrect handshake.
- WebSocket upgrade failedHTTP connection could not be upgraded to WebSocket protocol, often due to proxy or server configuration.
Other categories
- AI 35Rate limits, context windows, GPU memory and model-serving failures.
- Ansible 10Unreachable hosts, become passwords, undefined variables and Jinja2 failures.
- API 14Auth headers, payload limits, versioning, idempotency and webhook signatures.
- Apple 10Command line tools, dyld, Homebrew permissions, notarisation and Keychain.
- Auth 11OIDC, SAML, Auth0, Okta, Keycloak, passkeys and MFA failures.
- BigData 11Spark, Kafka, Airflow, Snowflake, Flink and Databricks failures.
- C# 12NuGet restore, null references, EF Core migrations, async deadlocks and Blazor…
- C++ 11Segfaults, linker errors, memory corruption and template deduction failures.
- Caching 10Cache stampedes, stale content, Varnish and CloudFront failures.
- CI/CD 18GitHub Actions, GitLab CI, Jenkins, CircleCI: permissions, runners and…
- Client 21CORS, mixed content, module resolution, memory limits and framework runtime…
- Cloud 25IAM permissions, quotas, service limits and credential failures.
- Dart 10Null safety, pub version solving and build toolchain problems.
- Database 41Connections, deadlocks, constraints, replication and memory limits.
- DNS 10NXDOMAIN, SERVFAIL, timeouts, propagation and delegation problems.
- Docker 27Daemon connectivity, disk space, image pulls, ports and architecture mismatches.
- Elixir 9GenServer timeouts, supervision failures and Mix compilation problems.
- Email 8Delivery failures, relay denial, authentication, SPF, DKIM and DMARC.
- Frontend 23Hydration mismatches, bundler resolution, layout shift and font loading.
- Git 20Merge conflicts, rejected pushes, detached HEAD, LFS and repository corruption.
- Go 19Nil map assignment, concurrent map access, context cancellation and deadlocks.
- GraphQL 13Validation, depth limits, N+1 queries and fragment problems.
- gRPC 10Status codes, deadlines, message limits, TLS and HTTP/2 transport failures.
- HTTP 494xx client errors, 5xx server errors, redirects, headers and protocol problems.
- ICMP 23Destination unreachable, time exceeded, fragmentation needed and redirects.
- Ingress 8404 default backend, missing TLS secrets, IngressClass and path matching.
- Java 19Class loading, dependency resolution, connection pools and JVM version…
- JavaScript 42npm resolution, async pitfalls, hydration, memory limits and runtime type…
- Kubernetes 34CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC, scheduling and storage.
- Logging 9Log4j, Logback, Fluentd, Logstash and CloudWatch ingestion problems.
- MessageQueue 14Kafka, RabbitMQ, SQS, NATS and Celery: lag, rebalancing and poison messages.
- Mobile 17Gradle, CocoaPods, Xcode signing, Metro bundler and toolchain mismatches.
- Monitoring 12Prometheus scrapes, Grafana data sources, OpenTelemetry exporters and agent…
- Performance 6GC pauses, thread pool starvation and event loop blocking.
- PHP 11Memory limits, execution timeouts, autoloading, Composer and PDO connections.
- Proxy 17nginx, Envoy, HAProxy, Traefik, Caddy and Cloudflare upstream failures.
- Python 35Imports, virtual environments, encoding, concurrency and dependency conflicts.
- Regex 8Catastrophic backtracking, back references, escaping and engine differences.
- Ruby 11Bundler, migrations, native extensions, encoding and asset compilation.
- Rust 19Borrow checker, ownership moves, trait bounds and lifetime mismatches.
- Scala 6Dependency resolution, binary compatibility and type inference failures.
- Security 25JWT validation, CSRF, OAuth grants, SELinux, SSH host keys and CSP.
- Serverless 11Lambda timeouts, package size limits, VPC networking and cold starts.
- Shell 13Command not found, permissions, quoting, expansion and Makefile syntax.
- Storage 13S3 permissions, NFS mounts, quotas, signed URLs and volume attachment.
- Svelte 10Store subscriptions, load functions and server/client boundaries.
- System 26Disk space, systemd units, file descriptors, OOM killer and scheduled jobs.
- Terraform 18State locks, provider auth, drift, dependency cycles and plan-time unknowns.
- Testing 18Jest, pytest, JUnit, Cypress and Playwright: fixtures, snapshots and timeouts.
- TLS 24Untrusted authorities, expiry, hostname mismatch, chains and cipher negotiation.
- TypeScript 19Assignability, missing declarations, strict null checks and generic constraints.
- Virtualization 8VirtualBox, VMware, Hyper-V, WSL, KVM and hypervisor conflicts.
- Web3 7Gas estimation, nonce management and reverted transactions.
- WebAssembly 7Compile errors, memory bounds and host binding mismatches.
- WebServer 10nginx, Apache, IIS and Caddy: binding, permissions, rewrites and TLS.
- Windows 10Installer failures, missing runtimes, update errors and permission problems.