Step 1: who answered?#
Run the failing request with curl -v. A status on the CONNECT line, before Connection established, comes from the gateway; a status after it comes from the destination. Browsers show gateway failures as ERR_TUNNEL_CONNECTION_FAILED or ERR_PROXY_CONNECTION_FAILED.
Step 2: gateway codes#
| Code | ProxShift meaning | Fix |
|---|---|---|
| 407 invalid_credentials | Username or password rejected | Copy the pair again; check for trailing spaces; whitelisted IP changed? |
| 400 invalid_parameter | A username parameter is unknown or malformed | Check keys and values: -cc-gb not -cc-uk, -city- without spaces, -ttl- from 1m to 24h |
| 402 insufficient_balance | No traffic or balance left | Top up; check the sub-user ceiling if you use one |
| 403 blocked_destination | Port or destination not allowed | Port 25, UDP and IPv6-only targets are refused by design |
| 502 no_exit_available | No exit matches the location right now | Widen: drop -city- or -asn-, keep -cc-; retry in a minute |
| 502 exit_failed | The exit failed before the target | Retry once; the next connection picks another exit |
| 504 target_timeout | The destination did not answer in time | Retry; check the target from another network |
Step 3: destination codes#
| Code | Likely cause | Fix |
|---|---|---|
| 403 (site page) | Exit type or fingerprint rejected | Residential or mobile exit; realistic client headers; sticky session for flows |
| 429 | Per-IP rate limit | Rotate per connection; lower per-exit rate; honour Retry-After |
| 200 with empty data | Soft block | Treat like 403; inspect content, not status |
| 302 to a challenge page | Bot check | Slow down; real browser for that target; better exit type |
| 5xx | Target trouble | Back off; not a proxy problem |
Connection-level failures#
ECONNRESET,Connection reset by peermid-transfer: the household exit dropped. Retry once; on a sticky session the gateway rebinds to a new exit in the same location.- Idle timeouts: the gateway closes connections idle for 60 seconds. Long-polling needs a fresh connection.
- TLS errors through the proxy: never normal. Check for a local interceptor (corporate proxy, antivirus) between you and the gateway.
Step 4: decide#
- Credentials or parameters wrong → fix and retry (no cost).
- Gateway found no exit → widen the location.
- Target blocks the exit type → move the target to a stronger network: datacenter → residential → mobile.
- Target rate-limits → rotate more and slow down; never both hammer and rotate.
- Target broken → wait.
Questions people ask#
Does ProxShift ever return 429?
No. The gateway has no request-rate limit; a 429 always comes from the destination.
Am I billed for failed requests?
Connections that fail before reaching the target are not billed. A 403 or 429 page from the destination is billed for its size, usually a few kilobytes.