Chrome network error · -111 · Connection
ERR_TUNNEL_CONNECTION_FAILED
Chromium's description
A tunnel connection through the proxy could not be established. For more info see the comment on PROXY_UNABLE_TO_CONNECT_TO_DESTINATION.
Chrome shows it as net::ERR_TUNNEL_CONNECTION_FAILED, error -111. puppeteer and Playwright report the same name when a page fails to load in Chromium.
Common causes
- A proxy configured in the system or browser that refuses or cannot reach the site.
- A proxy that needs authentication or blocks the domain or port.
- A broken VPN or proxy extension.
- The target website itself is down, seen through the proxy.
How to fix ERR_TUNNEL_CONNECTION_FAILED
- Turn off the proxy in the system or browser settings (or set it to automatic) and retry.
- Disable proxy and VPN extensions.
- Check with whoever runs the proxy whether the site is allowed.
- Flush DNS and socket pools at
chrome://net-internals.
ERR_TUNNEL_CONNECTION_FAILED in the screenshot API
When the page itself fails to load with ERR_TUNNEL_CONNECTION_FAILED, the API answers 502 with the message The target website could not be loaded (ERR_TUNNEL_CONNECTION_FAILED). (target_unreachable). Not billed.
Only the page's own load can fail a render. An image, script or frame of the page that fails with a network error does not: the page is captured as the browser shows it without that resource.
Check whether a website loads
Frequently asked questions
What does ERR_TUNNEL_CONNECTION_FAILED mean?
How do I fix ERR_TUNNEL_CONNECTION_FAILED?
Is a screenshot that fails with ERR_TUNNEL_CONNECTION_FAILED billed?
Other common errors
Screenshot API
Take screenshots from your code
screenshotbase renders any website in a real browser and returns the image: full page or viewport, any device size, retina, from 100+ countries, with cookie banners and ads hidden.
/v1/take documentation Screenshot API All documentation
300 free screenshots every month. No credit card required.
GET https://api.screenshotbase.com/v1/take?url=https://example.com&full_page=true
# Response: the image (PNG, JPG, WebP or GIF)
curl -G "https://api.screenshotbase.com/v1/take" \
--data-urlencode "url=https://example.com" \
-d viewport_width=1280 -d viewport_height=800 \
-d format=png \
-H "apikey: YOUR-API-KEY" \
-o screenshot.png