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

  1. Retry the request; the front layer usually rotates workers/IPs
  2. Increase the timeout argument
  3. Check that check_ip still marks the front IPs as working
  4. 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

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

Related errors


AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27). Data as JSON: /api/errors/4030b8284ea13618. Report an issue: GitHub.