Skip to content

Proxy Keeps Disconnecting: Timeouts, Idle Drops, Reconnects

Three common causes of a proxy that keeps dropping, then the checks in the order that finds the cause fastest.

The three most common causes

1. The session or rotation ended. Without a session, each new connection through rotating residential or rotating datacenter proxies gets a new IP, while a reused connection keeps its IP. On the Budget line a session lasts 1 to 120 minutes of your choice. On the Premium line the IP is usually the same while you keep using it and can change after idle time; for long stretches on one IP choose static. Rotating datacenter holds the same IP for about 10 minutes and changes after about 60 seconds idle. To you this looks like a drop, but the proxy is working.

2. Your tool timed out or reused a dead connection. Python Requests has no timeout unless you set one, and it does not retry failed connections by default; a request can hang for minutes. Keep-alive reuses a connection inside a session, so if that connection was closed on the way, the next request fails until it is replaced. Any device on the path may close a connection that stays idle.

3. Something on your side cut the path. A VPN or a second proxy app running at the same time, a system proxy that points elsewhere, a laptop or phone that puts Wi-Fi to sleep, or a router that resets long connections can all end a connection that the proxy itself still considers open.

Error names and where they usually point

Error names and where they usually point
ItemChromium's descriptionUsually points to
ERR_CONNECTION_RESETThe connection was reset (a TCP RST)Something on the path ended it: session end, a local VPN or firewall, or a dropped link
ERR_CONNECTION_CLOSEDThe connection was closed (a TCP FIN)One side closed it cleanly: idle close, session end, or the target site
ERR_TIMED_OUT / ERR_CONNECTION_TIMED_OUTAn operation, or a connection attempt, timed outNothing answered in time: wrong address or port, a blocked path, or a stalled connection
ERR_TUNNEL_CONNECTION_FAILEDA tunnel through the proxy could not be establishedThe proxy was reached but the target could not be opened through it: check login and the target address
ERR_PROXY_CONNECTION_FAILEDCould not resolve or connect to the proxy server itselfAddress, port, local network or system proxy; see the connection-failed guide

Descriptions are from the Chromium net error list, read on 14 November 2026. The right-hand column is a practical reading, not part of that list.

Step 1: checks in this order

  1. Step 1: separate a drop from an IP change

    Each time it happens, open https://ipinfo.io/json through the proxy and write down the ip, the time and the exact error text. A new IP with no error means rotation or the end of a session; an error with the same IP means a real drop.

  2. Step 2: check the session type

    If you use a rotating line, check whether you opened a session and for how long. If the work needs one IP for hours, move to static.

  3. Step 3: set timeouts and retries

    Give the tool a connect timeout and a total timeout, and a small number of retries. See the curl and Python examples below.

  4. Step 4: check address, port, protocol and login

    Copy HOST, PORT, USERNAME and PASSWORD again from My assets. HTTP uses port 2222 and SOCKS5 uses port 3333, and the protocol in your tool must match the one the IP was issued with.

  5. Step 5: rule out your own network

    Turn off any VPN and any second proxy app, check the system proxy settings, stop the device from sleeping Wi-Fi, then test the same proxy from another network or device. If it only drops on one, the problem is local.

  6. Step 6: open a ticket with the evidence

    If it still drops, send the order number, the exit IP, the exact error and the times from Step 1, and say which networks you tested.

Timeouts and retries: curl

# 10 s to connect, 30 s per transfer, 3 retries
curl --connect-timeout 10 --max-time 30 --retry 3 \
  -x http://LOGIN:PASSWORD@HOST:PORT https://ipinfo.io/json

Example only: replace LOGIN, PASSWORD, HOST and PORT with your own values.

Timeouts and retries: Python requests

import requests
from requests.adapters import HTTPAdapter
from urllib3.util import Retry

proxy = "http://LOGIN:PASSWORD@HOST:PORT"
s = requests.Session()
s.proxies = {"http": proxy, "https": proxy}
s.mount("https://", HTTPAdapter(max_retries=Retry(total=3, backoff_factor=0.5)))
print(s.get("https://ipinfo.io/json", timeout=(10, 30)).json()["ip"])

Example only: replace the placeholders with your own values. Environment proxy variables can override session.proxies, so unset them if the proxy seems ignored.

By symptom

It works for a few minutes, then every request fails

Check Is a session or an idle limit involved, and does a fresh connection work at once?

Fix Open a new connection, use shorter timeouts so dead connections are noticed sooner, and re-open the session when it ends.

Stop when If a new connection fails too, go to Steps 4 and 5.

The IP is different after every drop

Check Are you on a rotating line without a session?

Fix Open a session on the Budget line, or buy a static ISP IP if you need the same address.

Stop when A static ISP IP that changes inside its lease term is a ticket, not a retry.

Only one app drops, the rest work

Check Does that app use its own proxy field, or the system proxy? Is it set to the same protocol as the IP?

Fix Set the proxy in that app explicitly and test it with the curl command above.

Stop when Stop if curl works but the app does not: the app's own settings are the cause.

How this maps to Proxy302

Static ISP IPs are leased per IP and stay fixed for the lease term, from US$0.50 for 1 day to US$7.99 for 30 days, so a reconnect gives you the same address. Rotating residential gives a new IP on each new connection unless you open a session. Datacenter rotating is US$0.40 per GB, US exits only. The smallest purchase is one IP for one day, and there is no free trial.

FAQ

Why does my proxy keep disconnecting?

Most often the session or rotation ended, the tool timed out on a dead connection, or a VPN or second proxy app on your side cut the path. Record the exit IP and the exact error each time to tell them apart.

Is a changed IP the same as a disconnect?

No. On rotating lines a new connection gets a new IP by design, unless you open a session. A real disconnect shows an error, usually with the same IP.

What timeout should I set?

There is no single right value. A short connect timeout (10 seconds in the example) and a longer total timeout (30 seconds) with a few retries is a reasonable start; raise the totals only for large downloads.

Does a static IP drop less?

A static ISP IP keeps the same address for its term, so a reconnect does not change your IP. Connections can still be cut by your own network, so the checks above still apply.

Reference links

4
  1. Chromium source: net error list (net_error_list.h)

    Official documentation · Confirmed on:

    Read on 14 November 2026: CONNECTION_RESET is a connection reset (a TCP RST), CONNECTION_CLOSED is a connection closed (a TCP FIN), CONNECTION_TIMED_OUT is a connection attempt that timed out, TIMED_OUT is an operation that timed out, TUNNEL_CONNECTION_FAILED is a tunnel through the proxy that could not be established, PROXY_CONNECTION_FAILED is a failure to resolve or connect to the proxy server itself.

  2. Requests documentation: Advanced Usage

    Official documentation · Confirmed on:

    Read on 14 November 2026: by default requests do not time out unless a timeout is set; timeout takes one value or a (connect, read) tuple; Requests does not retry failed connections by default, and retries can be added with urllib3 Retry through an HTTPAdapter; keep-alive is automatic within a Session; values set in session.proxies can be overridden by environment proxies; SOCKS needs requests[socks], and socks5h resolves names on the proxy.

  3. curl manual page

    Official documentation · Confirmed on:

    Read on 14 November 2026: --connect-timeout limits only the connection phase (DNS plus TCP, TLS or QUIC handshakes); --max-time sets the maximum time each transfer may take and its counter resets on each --retry attempt; --keepalive-time sets how long a connection stays idle before keepalive probes, 60 seconds by default.

  4. Proxy302 product facts and price list

    Product observation · Confirmed on:

    Product facts file of the site, checked 14 November 2026 against the console and the price table: products, prices in US$ (1 PTC = US$1), lease terms, protocols and ports, countries, quantity limits, auto-renew, no free trial.

Ready to try it?

Create an account, top up once, then pick rotating residential, static ISP or datacenter IPs and have one running in your browser within minutes.