Fixes
Network problems and error messages, and how to fix them.
Problems 19
Port Already in Use on Mac: Find and Kill the Process
Find which process holds a port on your Mac with one lsof command, stop it safely, and deal with the usual suspects: old dev servers and AirPlay Receiver on 5000 and 7000.
Why Is My Internet Not Working? Find the Cause in 60 Seconds
Run the check below to see whether the problem is your connection, DNS or something slower, then follow the steps for that cause.
"Ethernet Doesn't Have a Valid IP Configuration": Fixes
Windows network troubleshooting found that the Ethernet adapter didn't get a usable IP address from the router (DHCP failed).
"No Internet, Secured": How to Fix It
A Windows message: you're connected to a password-protected Wi-Fi network, but Windows can't reach the internet through it.
"Privacy Warning" and "Weak Security" on Wi-Fi: What They Mean
Apple devices show these notes under a Wi-Fi network when your privacy protections are off or blocked, or when the network uses outdated encryption.
"Unidentified Network": How to Fix It
Windows can't identify the network it's connected to, usually because it has no valid address or can't reach the default gateway.
AirDrop Not Working on Mac? How to Fix It
AirDrop needs Wi-Fi, Bluetooth, the right discoverability setting and nothing blocking incoming connections. Check each in turn.
Cannot Connect to App Store on Mac: Fixes
The App Store says it can't connect while the rest of the internet works. Clock, DNS, VPN or filtering problems are the usual causes.
Continuity Camera Not Working: Fixes
Using your iPhone as a Mac webcam needs compatible devices, the same Apple Account, Wi-Fi and Bluetooth, and the feature turned on in iPhone settings.
Handoff Not Working Between Mac and iPhone
Handoff needs the setting on both devices, the same Apple Account, and Bluetooth and Wi-Fi on. Here's how to check each.
How to Tell If Your Mac Is Hacked: Network Signs
Most odd behaviour isn't a hack. These checks look at what actually matters, what your Mac connects to, what starts automatically and who can log in, so you can tell.
localhost Not Working on Mac (127.0.0.1 vs ::1)
On a Mac, localhost means both 127.0.0.1 and ::1. Servers that listen on only one of them work with one address and fail with the other.
Mac Ethernet Not Working: Fixes
Your Mac doesn't get a connection over Ethernet: no link, no address, or Wi-Fi keeps taking priority. Work from the cable inward.
Mac Internet Slow? Find What's Using Your Connection
Find out whether your Mac's slow internet is the connection, Wi-Fi, or an app quietly using bandwidth, and fix it.
Mac Wi-Fi Keeps Disconnecting? Fixes That Work
Your Mac's Wi-Fi drops every few minutes or hours. Most cases come down to signal, roaming between saved networks, interference or power settings.
MacBook Won't Connect to Wi-Fi: How to Fix It
Your Mac can't join a Wi-Fi network, or joins and immediately drops. Work through these steps from quickest to most thorough.
Sidecar Not Working: Fixes for Mac and iPad
Sidecar uses an iPad as a second Mac display. It needs supported models, the same Apple Account, Handoff, and Wi-Fi and Bluetooth, or a cable.
Universal Clipboard Not Working: Fixes
Copy-paste between Apple devices relies on Handoff. If Handoff works, Universal Clipboard usually does too; if not, fix Handoff first.
Wi-Fi Connected but No Internet: 10 Fixes (Mac First)
Your device has joined Wi-Fi, but traffic doesn't get past the router. Work through these fixes from most to least likely.
Chrome errors 33
DNS_PROBE_FINISHED_NXDOMAIN: What It Means and How to Fix It
Chrome couldn't find an IP address for the site because DNS answered that the name doesn't exist. Usually a typo, an expired domain or a DNS problem on your side.
"This Site Can't Be Reached": Every Cause and Fix
Chrome's headline when it can't load a site at all. The error code underneath tells you why: DNS, a refused or timed-out connection, or no internet.
DNS_PROBE_FINISHED_BAD_CONFIG: How to Fix It
Chrome's diagnostic found your configured DNS server doesn't work, typically a wrong manual DNS entry, a dead VPN resolver or a broken router.
DNS_PROBE_FINISHED_NO_INTERNET: How to Fix It
A lookup failed and Chrome's follow-up check concluded you have no internet connection at all.
DNS_PROBE_STARTED: How to Fix It
A DNS lookup failed and Chrome began diagnosing it, but the check couldn't finish, typically because the connection or DNS is unstable.
ERR_ADDRESS_UNREACHABLE: How to Fix It
Your device has no network path to the address. Common with local IPs (routers, NAS, printers) opened from another network, or with VPN and IPv6 routing problems.
ERR_BAD_SSL_CLIENT_AUTH_CERT: How to Fix It
The site asks for a client certificate (used by banks, government and company sites), and the one your browser sent was rejected or invalid.
ERR_BLOCKED_BY_CLIENT: What It Means
A browser extension or setting blocked this request, almost always an ad or tracker blocker matching the address.
ERR_BLOCKED_BY_RESPONSE: What It Means
The server's security headers told Chrome not to load the content where it was requested, typically inside a frame or from another site.
ERR_CACHE_MISS: How to Fix It
Chrome needs data you submitted earlier (usually a form) to show this page again and won't resend it without asking. Reloading and confirming usually fixes it.
ERR_CERT_COMMON_NAME_INVALID: How to Fix It
The certificate is valid but for a different host name than the one in the address bar, such as example.com vs www.example.com, or an IP address.
ERR_CONNECTION_ABORTED: How to Fix It
The connection was aborted, often by software on your own computer (antivirus, VPN, proxy) or by a server that ended an unusual request.
ERR_CONNECTION_CLOSED: How to Fix It
The connection opened but was closed before any data arrived, typically by a proxy, firewall, VPN or a network that blocks the site.
ERR_CONNECTION_REFUSED: What It Means and How to Fix It
The browser reached the server, but the server actively refused the connection, usually because nothing is listening on that port or a firewall rejected it.
ERR_CONNECTION_RESET: Causes and Fixes
The connection opened but was abruptly closed, usually by something between you and the server: security software, a proxy or VPN, a firewall, or a flaky network.
ERR_CONNECTION_TIMED_OUT: How to Fix It
The browser tried to connect but got no reply before giving up. The server may be down or overloaded, or something on the path is silently dropping traffic.
ERR_EMPTY_RESPONSE: How to Fix It
The server accepted the connection but sent back nothing at all before closing it, often because the server crashed on the request or something in between dropped it.
ERR_FAILED: How to Fix It
A generic Chrome error meaning a request failed for a reason without a more specific code. DevTools and a few eliminations usually reveal the cause.
ERR_HTTP_RESPONSE_CODE_FAILURE: What It Means
The server replied with an HTTP error status (such as 403 or 500) and no page Chrome could show, so Chrome shows its own error instead.
ERR_HTTP2_PROTOCOL_ERROR: How to Fix It
The HTTP/2 connection between Chrome and the server was broken by an invalid response or a stream reset, usually by the server or something in between.
ERR_INTERNET_DISCONNECTED: How to Fix It
Your computer has no active network connection, so Chrome didn't even try. Usually Wi-Fi or Ethernet is off or disconnected.
ERR_NAME_NOT_RESOLVED: How to Fix It
Chrome couldn't resolve the website's name to an IP address. Usually a DNS problem on your device or network, sometimes a broken domain.
ERR_NETWORK_ACCESS_DENIED: How to Fix It
Something on your computer is denying Chrome network access: a firewall, security software, a content filter or a missing permission.
ERR_NETWORK_CHANGED: Why It Happens and How to Stop It
Chrome saw your network connection change while loading the page, for example a Wi-Fi switch, a VPN reconnecting or a virtual network adapter appearing.
ERR_QUIC_PROTOCOL_ERROR: How to Fix It
Chrome's QUIC connection (HTTP/3 over UDP) to the site failed, usually because something on the network mishandles UDP traffic on port 443.
ERR_SSL_PROTOCOL_ERROR: How to Fix It
Chrome couldn't complete the TLS (HTTPS) handshake with the site. Causes range from a wrong system clock or interfering software to a misconfigured server.
ERR_SSL_UNRECOGNIZED_NAME_ALERT: How to Fix It
During the TLS handshake the server said it doesn't host the name you asked for (SNI), usually a server configuration problem or a wrong address.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH: How to Fix It
The browser and server have no TLS version or cipher in common, usually because the server only offers outdated ones, or because no certificate exists for that host name yet.
ERR_TOO_MANY_REDIRECTS: How to Fix It
The site keeps redirecting the browser in a loop, so Chrome gives up. Stale cookies or conflicting HTTPS and www redirect rules are the usual causes.
ERR_TUNNEL_CONNECTION_FAILED: How to Fix It
Your connection goes through a proxy, and the proxy couldn't open a tunnel to the website. The proxy setting is wrong, the proxy is down, or it blocks the site.
ERR_UNSAFE_PORT: Why Chrome Blocks Some Ports
Chrome blocks HTTP requests to a list of ports used by other protocols (mail, SSH, X11, IRC and more) to prevent cross-protocol attacks.
NET::ERR_CERT_AUTHORITY_INVALID: How to Fix It
The site's certificate wasn't issued by an authority your browser trusts: it's self-signed, the chain is incomplete, or software on your Mac replaced it.
NET::ERR_CERT_DATE_INVALID: How to Fix It
The site's certificate is outside its valid dates, either because it really expired or because your device's clock is wrong.
Safari errors 2
Safari Can't Establish a Secure Connection: Fixes
Safari couldn't complete an HTTPS connection to the site: a clock, proxy, content filter or VPN on your side, or an outdated server configuration.
Safari Can't Find the Server: Fixes for Mac
Safari couldn't look up the website's address: a typo, a DNS problem on your Mac or network, or a domain that doesn't exist.
Firefox errors 3
"Secure Connection Failed" in Firefox: How to Fix It
Firefox couldn't establish a secure connection. The code below the message (such as SEC_ERROR_UNKNOWN_ISSUER) tells you why.
PR_CONNECT_RESET_ERROR in Firefox: How to Fix It
Firefox's version of a reset connection: something between you and the server, or the server itself, abruptly ended the connection.
SSL_ERROR_RX_RECORD_TOO_LONG: How to Fix It
Firefox expected an encrypted TLS reply but got something else, almost always plain HTTP from a server that isn't set up for HTTPS on that port.
Any browser 2
"Your Connection Is Not Private": What It Means and What to Do
Chrome couldn't verify the website's identity because its HTTPS certificate failed a check. Sometimes the site is broken; sometimes your clock, network or software is the cause.
SSL Handshake Failed: Causes and Fixes
The client and server couldn't complete the TLS handshake that starts every HTTPS connection, because of a clock, protocol, certificate or interception problem.
Website (HTTP) errors 23
502 Bad Gateway: What It Means and How to Fix It
A server acting as a gateway or proxy, such as a CDN, load balancer or nginx, got an invalid response from the server behind it. It's almost always a server-side problem.
304 Not Modified: What It Means
Not an error: the server confirms the copy your browser already has is current, so it doesn't send the content again.
400 Bad Request: What It Means and How to Fix It
The server rejected the request as malformed: a broken URL, cookies that are too large or corrupted, or invalid data sent by an app.
401 Unauthorized: What It Means (vs 403)
The server needs you to authenticate and didn't get valid credentials: you're not logged in, the session expired, or an API token is missing or wrong.
403 Forbidden: What It Means and How to Fix It
The server understood your request but refuses to give you access, because of permissions, missing authentication, or a firewall or region block.
404 Not Found: What It Means and How to Fix It
The server is working but has no page at the address you requested: the link is wrong, or the page was moved or deleted.
405 Method Not Allowed: Causes and Fixes
The address exists, but it doesn't accept the HTTP method you used, such as a POST to a page that only allows GET.
408 Request Timeout: Causes and Fixes
The server waited too long for the client to send its request and closed the connection, usually on a slow or unstable connection.
410 Gone: What It Means (vs 404)
The page used to exist and was removed permanently on purpose. Unlike 404, it tells browsers and search engines not to expect it back.
413 Request Entity Too Large: How to Fix It
The data you sent, usually a file upload, is bigger than the server allows.
415 Unsupported Media Type: How to Fix It
The server rejected the request body because of its format, almost always a missing or wrong Content-Type header.
418 I'm a Teapot: The Joke Status Code
A joke status code from an April Fools' RFC about coffee pots. Some sites and frameworks use it deliberately, often to turn away bots.
422 Unprocessable Entity: What It Means
The server understood the request's format but rejected its contents: a missing field, an invalid value or a rule the data breaks.
429 Too Many Requests: What It Means
The server is rate-limiting you: too many requests came from your IP address, account or API key in a short time.
500 Internal Server Error: Causes and Fixes
The server ran into an error it didn't handle while processing your request. It's a bug or misconfiguration on the website's side.
503 Service Unavailable: Causes and Fixes
The server is temporarily unable to handle requests, usually because it's overloaded or down for maintenance. It's meant to be temporary.
504 Gateway Timeout: How to Fix It
A gateway or proxy forwarded your request but the server behind it didn't answer in time, usually because it's overloaded or stuck on a slow task.
Cloudflare Error 520: Unknown Error
Cloudflare connected to the origin, but the response was empty, malformed or cut off, so Cloudflare can't say more than “unknown error”.
Cloudflare Error 521: Web Server Is Down
Cloudflare reached your origin server's address, but the server refused the connection: the web server is down or blocks Cloudflare's IP addresses.
Cloudflare Error 522: Connection Timed Out
Cloudflare tried to open a connection to the origin server and got no answer in time: the server is overloaded, offline, or a firewall drops Cloudflare's traffic.
Cloudflare Error 524: A Timeout Occurred
Cloudflare connected to the origin and sent the request, but the origin took longer than Cloudflare's 100-second limit to start responding.
Cloudflare Error Codes: 520–526, 1015, 1020
Cloudflare shows its own error pages when it can't get a good response from a website's server, or when a rule blocks you. Here's what each code means.
HTTP 499: Client Closed Request
An nginx-specific code logged when the client gave up and closed the connection before the server sent a response, usually because the backend was slow.
Terminal and developer errors 10
"Connection Reset by Peer": Causes and Fixes
The remote side (or a device in between) sent a TCP reset that killed the connection. Common with idle timeouts, crashes, overloaded servers and firewalls.
"Permission Denied (publickey)": How to Fix SSH Keys
The SSH server only accepts key-based login and none of the keys your client offered matched. Usually the wrong key, a key not loaded into the agent, or bad permissions.
"Self-Signed Certificate in Certificate Chain": How to Fix It
A tool found a self-signed root in the server's certificate chain that it doesn't trust, typically a company or antivirus proxy that inspects HTTPS.
"Socket Hang Up" in Node.js: Causes and Fixes
Node's HTTP client saw the connection close before a response arrived, typically because of a server timeout, a reused stale keep-alive socket or a protocol mismatch.
"Unable to Get Local Issuer Certificate": Fixes for git, curl, npm and Python
A command-line tool couldn't verify a server's certificate because it doesn't trust the issuer, usually a company proxy's certificate or an outdated CA bundle.
curl: (6) Could Not Resolve Host: How to Fix It
curl couldn't turn the host name into an IP address. Typos, shell quoting, proxy settings and DNS problems are the usual causes.
ECONNREFUSED: Connection Refused in Node.js
Node tried to connect and the target refused: no process listens on that address and port. On Macs, localhost resolving to IPv6 ::1 is a frequent cause.
getaddrinfo ENOTFOUND: How to Fix It
A DNS lookup for the host name failed. In code, a URL passed where a bare host name is expected is a classic cause.
SSH "Connection Refused": How to Fix It
The host is reachable but nothing accepted the SSH connection on that port: the SSH server isn't running, listens on another port, or a firewall rejects it.
SSH "Connection Timed Out": How to Fix It
Your SSH connection attempt got no reply: wrong address, the host is down, or a firewall silently drops traffic to the port.
System errors 2
DNS Server Not Responding: 9 Fixes
Your device is connected to the network but its DNS server isn't answering, so no website names resolve. Usually the router, the ISP's DNS or a local setting.
Mac Has a Self-Assigned IP Address: How to Fix It
Your Mac didn't get an address from the router (DHCP), so it gave itself a 169.254.x.x address that only works for local links.
App errors 3
ERR_CLEARTEXT_NOT_PERMITTED (Android WebView): How to Fix It
An Android app tried to load an unencrypted http:// address, which Android blocks by default from Android 9 onward.
ERR_UNKNOWN_URL_SCHEME: How to Fix It
A link used a scheme (like intent://, tel: or an app's custom scheme) that the browser or an app's web view doesn't know how to open.
NSURLErrorDomain Errors on Mac and iPhone: What Each Code Means
Apple apps and frameworks report networking failures as NSURLErrorDomain with a negative code. Each code names a specific problem: offline, timeout, DNS, TLS and so on.