
Proxy failures often look identical from an application: the expected data never arrives. Yet a 407 response, a 429 response, a timeout, and a connection reset occur at different layers and demand different remedies. Treating every failure as “retry immediately” can amplify rate limits, lengthen queues, and hide the real cause.
Locate the failing layer first
Split one request into five layers: client, proxy authentication, proxy egress, target service, and application logic. Hold the target, region, session policy, and concurrency constant. Record the UTC timestamp, request ID, proxy region, HTTP status, relevant response headers, failure phase, and total duration. Change one variable at a time so the result remains attributable.
407: repair authentication before rotating
A 407 response means that the proxy requires authentication. Verify the username, password, endpoint, port, and authentication method. Check that URL encoding has not altered the credentials and that target-server Authorization headers are not being confused with Proxy-Authorization.
Run a single low-concurrency request with the same credentials. If every node returns 407, inspect account state, product permissions, and IP allowlisting. If only a subset fails, isolate the region, protocol, and endpoint. Rotating faster does not repair invalid credentials.
429: respect Retry-After and reduce pressure
A 429 response is a rate-limit signal. It may be generated by the proxy, another gateway, or the target. Inspect Retry-After and Proxy-Status when available, then determine which hop applied the limit.
Do not immediately switch IPs and continue at the same rate. Reduce concurrency, apply exponential backoff with jitter, set a per-domain request budget, and cache data that does not need frequent refreshes. Every retry policy needs both a maximum attempt count and a total time budget. Exhausted work should enter a delayed queue, not an infinite loop.
Timeouts: split the connection into phases
Separate DNS, TCP connection, TLS handshake, time to first byte, and response-body read time. A connection timeout often points to routing, node availability, or a firewall. A first-byte timeout is more likely to involve a slow target, congested egress, or an expensive request. A read timeout may indicate a large response, bandwidth pressure, or a streaming problem.
Use separate connection and read timeouts. One global timeout hides the phase that actually failed.
Connection resets: test protocol and reuse
A reset can come from the proxy, target, an intermediate device, or the client connection pool. Disable connection reuse for a control test. Then compare TLS versions, HTTP/2 or HTTP/3 negotiation, idle connection lifetime, request-body size, and per-connection request count.
If resets cluster around one region or node, quarantine it and run a health check. If they appear only at high concurrency, reduce requests per connection and shorten the queue.
A bounded retry matrix
- 407: retry only after credentials or allowlisting changes.
- 429: honor Retry-After, back off, and lower concurrency.
- Connection timeout: switch to a healthy node within a strict attempt budget.
- Read timeout: inspect response size and target performance first.
- Connection reset: pause briefly, open a new connection, and retain node and protocol evidence.
- Deterministic 4xx application errors: do not retry unless request conditions change.
Minimum diagnostic record
For each failed request, keep a request ID, UTC time, target hostname, proxy region, session type, status code, failure phase, duration, retry count, and final outcome. Never log full proxy passwords, cookies, personal data, or sensitive target content. Apply access controls and a retention period to all operational logs.
Pre-deployment checklist
- Does a single request succeed?
- Have credentials, allowlisting, and plan permissions been ruled out for 407?
- Does 429 handling honor waiting instructions and cap retries?
- Are DNS, connect, TLS, first-byte, and read timings measured separately?
- Do resets correlate with a protocol, region, node, reuse policy, or concurrency level?
- Are maximum attempts, total time budget, and circuit breaking configured?
- Are credentials and personal data excluded from logs?
FAQ
Can unlimited IP rotation solve 429?
No. A 429 is a capacity or policy signal. Unlimited rotation can increase pressure and violate the target’s rules. Reduce request rate, honor waiting periods, and confirm that the activity is authorized.
How is 407 different from a target’s 401?
407 normally belongs to the proxy-authentication layer, while 401 normally belongs to authentication for the target resource. Inspect the corresponding authentication challenge headers and keep the two credential flows separate.
Which failures are safe to retry?
Transient network failures can be retried within a strict budget. Authentication failures, permission failures, and most deterministic 4xx responses should not be retried without changing the underlying condition.
Auditable, low-rate collection is more reliable than simply adding more IPs. For legitimate regional and session testing, review the proxy options on the 98IP home page and always follow target terms, applicable law, and data-minimization principles.
Research basis: RFC Editor, HTTP Semantics, June 2022; Additional HTTP Status Codes, April 2012; The Proxy-Status HTTP Response Header Field, June 2022.
Related Recommendations
- How to set up the Firefox proxy server? Just these few steps are easy to get done
- Browser High-Speed Proxy IP: Detailed Selection and Usage Guide
- What are the functions of the http proxy IP tool? How to set the proxy IP address for mobile phone software?
- Playwright Proxy Configuration Guide: Authentication, Isolation and Debugging
- How to change IP in a virtual machine?
- How to set up a computer to access the Internet with dynamic IP? What is the use of dynamic proxy IP?
- Apple mobile phone set up static IP tutorial, what is the role of long-term IP agents?
- http global proxy: how to set up a stable connection
- Mobile version free domestic IP agent
- Solve the IP restriction problem and no longer worry about "blocking access"!