XX-net/XX-Net · warning
req %s get response timeout
Error message
req %s get response timeout
What it means
CloudFlareFront.request got no response object from dispatcher.request within the timeout; it returns ('', 602, {}) as a synthetic timeout response.
Source
Thrown at code/default/x_tunnel/local/cloudflare_front/front.py:98
if host not in self.dispatchs:
if host in ["center.xx-net.org", "dns.xx-net.org"]:
config = self.light_config
else:
config = self.config
http_dispatcher = HttpsDispatcher(
logger, config, self.ip_manager, self.connect_manager,
http2worker=CloudflareHttp2Worker)
self.dispatchs[host] = http_dispatcher
dispatcher = self.dispatchs[host]
return dispatcher
def request(self, method, host, path="/", headers={}, data="", timeout=120):
dispatcher = self.get_dispatcher(host)
response = dispatcher.request(method, host, path, dict(headers), data, timeout=timeout)
if not response:
self.logger.warn("req %s get response timeout", path)
return "", 602, {}
status = response.status
content = response.task.read_all()
if status == 200:
logger.debug("%s %s%s send:%d recv:%d trace:%s", method, host, path, len(data), len(content),
response.task.get_trace())
else:
self.logger.warn("%s %s%s status:%d trace:%s", method, response.worker.ssl_sock.host, path, status,
response.task.get_trace())
return content, status, response
def stop(self):
logger.info("terminate")
self.connect_manager.set_ssl_created_cb(None)
for host in self.dispatchs:
dispatcher = self.dispatchs[host]
dispatcher.stop()View on GitHub (pinned to cfa5bc17b6)
Solutions
- Retry the request; the front layer usually rotates workers/IPs
- Increase the timeout argument
- Check that check_ip still marks the front IPs as working
- Verify network connectivity to CloudFlare edges (port 443)
Defensive patterns
Strategy: retry
Try / catch
content, status, resp = front.request(...)
if status == 602:
# timeout: retry or rotate front Prevention
- Pass explicit timeout sized to workload
- Keep front IP pool healthy via periodic check_ip runs
When it happens
Trigger: request/get_dns/post_data call dispatcher.request with timeout=120 (default); response is None when the task times out or the worker fails.
Common situations: Front IPs blocked/reset by firewall, GFW interference, or timeout too small for a slow link.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27).
Data as JSON: /api/errors/4030b8284ea13618.
Report an issue: GitHub.