{"record":{"id":"be5d15e69b33c3fe","repo":"XX-net/XX-Net","slug":"req-s-get-response-timeout-be5d15","errorCode":null,"errorMessage":"req %s get response timeout","messagePattern":"req (.+?) get response timeout","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/x_tunnel/local/cloudfront_front/front.py","lineNumber":87,"sourceCode":"            host = self.last_host\n        else:\n            self.last_host = host\n\n        if host not in self.dispatchs:\n            http_dispatcher = HttpsDispatcher(\n                logger, self.config, self.ip_manager, self.connect_manager\n            )\n            self.dispatchs[host] = http_dispatcher\n\n        dispatcher = self.dispatchs[host]\n        return dispatcher\n\n    def request(self, method, host, path=\"/\", headers={}, data=\"\", timeout=120):\n        dispatcher = self.get_dispatcher(host)\n        headers = dict(headers)\n        response = dispatcher.request(method, host, path, headers, data, timeout=timeout)\n        if not response:\n            self.logger.warn(\"req %s get response timeout\", path)\n            return \"\", 602, {}\n\n        status = response.status\n        content = response.task.read_all()\n        if status == 200:\n            self.logger.debug(\"%s %s%s status:%d trace:%s\", method, response.worker.ssl_sock.host, path, status,\n                       response.task.get_trace())\n        else:\n            self.logger.warn(\"%s %s%s status:%d trace:%s\", method, response.worker.ssl_sock.host, path, status,\n                       response.task.get_trace())\n        return content, status, response\n\n    def stop(self):\n        logger.info(\"terminate\")\n        self.connect_manager.set_ssl_created_cb(None)\n        for host in self.dispatchs:\n            dispatcher = self.dispatchs[host]\n            dispatcher.stop()","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/x_tunnel/local/cloudfront_front/front.py#L69-L105","documentation":"CloudFrontFront.request got no response within the timeout; returns ('', 602, {}) synthetic timeout, mirroring the cloudflare variant.","triggerScenarios":"request/get call dispatcher.request and response is None after timeout (default 120s).","commonSituations":"CloudFront IPs blocked, congested link, or timeout too aggressive.","solutions":["Retry with backoff; front rotates workers","Increase timeout","Re-check front IPs with check_ip tooling","Verify outbound 443 connectivity"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"content, status, resp = front.request(...)\nif status == 602:\n    retry_with_backoff()","preventionTips":["Set explicit timeout per request","Keep CloudFront IP pool validated via check_ip"],"tags":["cloudfront","http","timeout","front"],"backgroundTag":"http-request-timeout","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}