No KYC — no ID, no selfie, no documents. Pay in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Language: English
Get started

Proxy error reference · Connection and TLS errors

Read timed out through a proxy: causes and sensible timeouts

Client timeout error: the exact message in each tool, the likely causes in order, and the fix that works.

Last updated: · 4 min read

Quick answer

What does Read timed out (ReadTimeout) mean with a proxy?

Read timed out means your client waited longer than its read timeout for the next bytes of the response. Through CrawlRelay residential proxies, the delay usually comes from a slow target or a slow home exit. Set separate connect and read timeouts, about 10 and 30 to 60 seconds for HTML pages, and retry a timed-out request once on a new exit.

Read timed out (ReadTimeout) at a glance

ErrorRead timed out (ReadTimeout)
TypeClient timeout error
Sent byYour HTTP client, when no data arrived within the read timeout
Defined inClient setting, no protocol status
Retry it?Yes, once or twice on a new exit
First checkCompare your read timeout with the target's normal response time

What does Read timed out (ReadTimeout) mean?

Clients usually have two timers. The connect timeout limits how long the client waits to open the connection to the proxy. The read timeout limits how long it waits between bytes once the request is sent. A read timeout therefore means the connection worked but the answer was too slow.

Without explicit timeouts, some clients wait forever. In Python requests, no timeout is the default, so a single stuck request can freeze a worker.

What does a read timeout look like in Python, curl, Node.js and browsers?

The same failure prints differently in every tool. These are the messages to search your logs for:

  • Python requests: ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)
  • httpx: httpx.ReadTimeout
  • Node.js: ETIMEDOUT, ESOCKETTIMEDOUT, or an AbortError from your own timer
  • Playwright: TimeoutError: page.goto: Timeout 30000ms exceeded

What causes a read timeout?

Most likely first:

  • A slow target page, such as search results or heavy dynamic pages.
  • A slow exit: home upload speed, Wi-Fi or a busy mobile cell.
  • Large downloads read in one block instead of streamed.
  • Timeouts set too tight for the page type.
  • Browser pages that wait for network idle on sites that never stop loading trackers.

How do I diagnose a read timeout step by step?

  1. Time the request without the proxy to get a baseline.
  2. Log time to first byte and total time separately.
  3. Check response sizes for the slow URLs.
  4. In browsers, check which waitUntil condition you use.
Test the failing URL with curl (HTTP port, verbose)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

How do I fix a read timeout?

  • Set both timeouts: connect about 10 seconds, read 30 to 60 seconds for HTML, more for large files.
  • Stream big responses and write them to disk in chunks.
  • Use domcontentloaded instead of network idle in Playwright when you only need the HTML.
  • Block heavy resources you do not need in browsers, such as video.
  • Retry once on a new exit, then move the URL to a slow queue.
Python httpx: explicit connect, read, write and pool timeouts
import httpx

proxy = "http://USERNAME:[email protected]:7777"
timeout = httpx.Timeout(connect=10.0, read=30.0, write=10.0, pool=10.0)

with httpx.Client(proxy=proxy, timeout=timeout) as client:
    try:
        r = client.get("https://api.ipify.org")
        print(r.status_code, r.text)
    except httpx.TimeoutException as exc:
        print("timed out:", type(exc).__name__)  # ConnectTimeout, ReadTimeout...

Should I retry after a read timeout?

Retry a read timeout once or twice on a new exit. If the same URL keeps timing out, give it a longer timeout in a separate slow queue rather than raising the timeout for everything. Watch out for duplicate side effects: only retry requests that are safe to repeat, such as GET.

How does Read timed out (ReadTimeout) apply to CrawlRelay?

Each new CrawlRelay connection without a session ID uses a different residential exit, so a retry also tests a different home connection. Keep sticky sessions short for slow targets: if the exit is slow, every request in the session is slow.

Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS through CONNECT) and port 7778 (SOCKS5). Username format: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Related: 504 Gateway Timeout · Connection reset · Concurrency guide.

Read timed out (ReadTimeout): questions developers ask

What timeout should I use for scraping with proxies?

Start with about 10 seconds to connect and 30 seconds to read for HTML pages, then adjust from your own measurements. JSON APIs are often faster; large files and slow search pages need more. Set them explicitly: Python requests has no timeout by default.

Does a timeout cost me traffic?

Only for the bytes that were transferred before the timeout. A request that times out while waiting for the first byte moved almost nothing. A large download that times out halfway did transfer data. Stream large files and resume them where possible.

Why do timeouts happen in bursts?

Often because the target slows down under load, sometimes your own load. Bursts across many exits at once point to the target; isolated timeouts point to single slow exits. Lower concurrency on the host when a burst starts.

Other proxy errors in this reference

HTTP status codes

Browser and client errors

Connection and TLS errors

Residential proxies with docs that cover the failure cases

CrawlRelay residential proxies from $0.50/GB, traffic that never expires.

From $0.50/GB · no KYC

Get started