
ERR_FAILED (net::ERR_FAILED in the developer console) is Chromium's generic network error: Chrome, Edge, Opera or Yandex Browser gave up on a request but has no more specific reason to report. It usually comes from something on your machine: a proxy or PAC file, an extension, HTTPS scanning in security software, or broken site data.
What ERR_FAILED actually means
Chromium keeps a single list of network error codes, and ERR_FAILED is number −2 in it, described simply as "a generic failure occurred". The browser falls back to it when a request is aborted and the component that aborted it did not attach a more specific code. That is why the page only says "This site can't be reached" or "This webpage is not available" and offers little else.
The useful inference is this: a dead server almost never produces ERR_FAILED. An unreachable or broken origin gets a precise code instead, such as ERR_CONNECTION_REFUSED, ERR_CONNECTION_TIMED_OUT or ERR_NAME_NOT_RESOLVED. A generic failure typically means the request was stopped before or while leaving your computer. The authoritative list of codes lives in the Chromium source: net_error_list.h.
ERR_FAILED vs ERR_CONNECTION_FAILED vs the proxy errors
| Error | Chromium code | What failed | Check first |
|---|---|---|---|
ERR_FAILED | −2 | Generic abort, no specific cause attached | Site data, service worker, extensions, security software |
ERR_CONNECTION_FAILED | −104 | The TCP connection attempt to the server failed | Firewall, hosts file, local network, other network |
ERR_TUNNEL_CONNECTION_FAILED | −111 | The proxy was reached but would not open a CONNECT tunnel for HTTPS | Proxy rules, authentication, corporate filtering |
ERR_PROXY_CONNECTION_FAILED | −130 | The browser could not reach the proxy server itself | System proxy settings, PAC script, proxy extensions |
Rule of thumb: if PROXY or TUNNEL is in the name, the site is almost certainly fine and the problem is proxy configuration. If only one site fails, start with that site's stored data.
Common causes
- A leftover system proxy. On Windows and macOS, Chromium browsers inherit the operating system's proxy. Software you uninstalled long ago may have left one behind that no longer answers.
- PAC files and WPAD. An automatic configuration script decides which hosts go direct and which go through a proxy. A stale script produces the confusing pattern where some sites load and others do not.
- Extensions. Ad blockers, header modifiers and proxy extensions can cancel requests. An extension that controls proxy settings is named on the browser's system settings page.
- HTTPS scanning. Security suites that inspect encrypted traffic sit in the middle of the connection; when their filter misbehaves, the browser sees an unexplained abort.
- A stale service worker. Sites can install a background script that answers requests from its own cache. After a deploy, an out-of-date worker can break the site only for returning visitors.
- Browser policies. Managed machines may have a proxy enforced by policy. Adware sometimes plants the same policies.
How to fix ERR_FAILED step by step
- Try the page in an Incognito window (
Ctrl+Shift+Non Windows and Linux,Cmd+Shift+Non macOS). Extensions are off there by default and no existing site data is used. If it loads, the cause is an extension or stored data. - Try another browser and another site. Failing everywhere points to the proxy, security software or the network; failing on one site points to that site's data.
- Disable extensions at
chrome://extensionsand re-enable them one at a time. - Open
chrome://settings/systemand click "Open your computer's proxy settings". Turn off anything you did not set up yourself. - Temporarily switch off HTTPS or SSL/TLS scanning in your security software and retry. If that helps, add an exclusion rather than leaving protection off.
- Reset the browser's network state: "Flush socket pools" at
chrome://net-internals/#socketsand "Clear host cache" atchrome://net-internals/#dns. - As a last resort, use
chrome://settings/reset→ "Restore settings to their original defaults". Bookmarks and saved passwords stay; extensions are disabled.
Fixing ERR_PROXY_CONNECTION_FAILED
First find out what the browser is actually using. chrome://net-internals/#proxy shows the effective proxy settings, including any PAC URL, with buttons to "Re-apply settings" and "Clear bad proxies".
Windows 10 and 11
Go to Settings → Network & internet → Proxy. Three independent switches live there: "Automatically detect settings" (WPAD), "Use setup script" (a PAC URL) and "Use a proxy server" (manual host and port). On a personal machine with no proxy you configured, turn all three off and restart the browser. You can inspect the same values from PowerShell:
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyEnable, ProxyServer, AutoConfigURL
WinHTTP has its own proxy setting, used by system services rather than by the browser. Check and clear it from an elevated prompt:
netsh winhttp show proxy
netsh winhttp reset proxy
A clean WinHTTP result does not prove the browser is proxy-free, because Chrome reads the per-user settings above. Check both. If a proxy is configured and you need to know whether it is alive, test its port: Test-NetConnection proxy.example.local -Port 3128.
macOS
System Settings → Network → your connection → Details → Proxies. From Terminal:
scutil --proxy
networksetup -getwebproxy "Wi-Fi"
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off
networksetup -setautoproxystate "Wi-Fi" off
Use networksetup -listallnetworkservices to get the exact service name.
Linux
Check environment variables with env | grep -i proxy; on GNOME, gsettings get org.gnome.system.proxy mode shows the desktop setting and gsettings set org.gnome.system.proxy mode 'none' disables it. Launching google-chrome --no-proxy-server is a quick way to confirm the diagnosis.
Proxy enforced by policy
If the switches are off and the browser still uses a proxy, look at chrome://policy for ProxyMode, ProxyServer or ProxyPacUrl. On a work machine, talk to IT. On a personal one, treat unexpected policies as a sign of adware and scan the system.
ERR_TUNNEL_CONNECTION_FAILED on HTTPS sites
For HTTPS, the browser asks the proxy to run CONNECT host:443. This error means the proxy answered with something other than success — typically 403 (blocked by policy), 407 (authentication required) or 502 (the proxy could not reach the site). curl shows the proxy's answer directly:
curl -v -x http://proxy.example.local:3128 https://example.com/
curl -v --noproxy "*" https://example.com/
If the direct request works and the proxied one does not, a proxy rule is blocking that host, and only the proxy's administrator can change it.
ERR_CONNECTION_FAILED
Here no proxy is involved: the direct TCP connection simply did not come up. Check the hosts file (C:\Windows\System32\drivers\etc\hosts on Windows, /etc/hosts elsewhere) for a stale entry, pause third-party firewalls, and try a different network such as a phone hotspot. On Windows, an elevated ipconfig /flushdns, netsh winsock reset and netsh int ip reset followed by a reboot clears most broken local network state.
ERR_FAILED on a single site
When one site fails and everything else works, clear that site's data: click the icon to the left of the address → Site settings → "Delete data". If the page never loads, press F12 and use Application → Storage → "Clear site data". Registered service workers are listed at chrome://serviceworker-internals, where each can be unregistered. For a full walkthrough of what browser cache clearing removes, see how to clear your browser cache.
"Failed to load resource: net::ERR_FAILED" in the console
For developers, this line appears when an individual subresource or API call is aborted. The most common companion message is "has been blocked by CORS policy": the server did not return the required Access-Control-Allow-* headers or failed the OPTIONS preflight. That is fixed server-side; our CORS guide covers the headers. Requests answered by a failing service worker show "(ServiceWorker)" in the Network panel's Size column. If every visitor hits the error, it is a site bug; if only one does, it is their environment.
How to check whether the site itself is down
Rule out the server before spending time on the client, especially if you run the site and a visitor reported the error.
- The HTTP header checker shows the status code, headers and redirect chain as seen from outside your network.
- The SSL checker tells certificate problems apart from proxy problems when only HTTPS fails.
- The port checker confirms that ports 80 and 443 are reachable, which matters for ERR_CONNECTION_FAILED.
FAQ
Is ERR_FAILED a virus?
No, it is a standard browser code. But a proxy or browser policy you never set up is a common adware footprint and worth a scan.
Why does it happen in only one browser?
The cause is in that browser's profile: an extension, stored site data or the browser's own proxy setting. System-level causes would affect every browser that uses system settings.
Will clearing the cache fix it?
Often, when the error is limited to one site and you also remove its service worker. If every site fails, look at the proxy, extensions and security software instead.
What is the difference between ERR_PROXY_CONNECTION_FAILED and ERR_TUNNEL_CONNECTION_FAILED?
The first means the proxy could not be reached at all; the second means it was reached but refused to tunnel to the HTTPS site.
Should I reinstall the browser?
Rarely. Resetting settings at chrome://settings/reset or testing in a fresh profile solves the same problems faster.