{"record":{"id":"79df26d71ebe1e69","repo":"XX-net/XX-Net","slug":"s-s-s-status-d-trace-s","errorCode":null,"errorMessage":"%s %s%s status:%d trace:%s","messagePattern":"(.+?) (.+?)(.+?) status:(.+?) trace:(.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/x_tunnel/local/cloudflare_front/front.py","lineNumber":107,"sourceCode":"            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        response = dispatcher.request(method, host, path, dict(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            logger.debug(\"%s %s%s send:%d recv:%d trace:%s\", method, host, path, len(data), len(content),\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()\n        self.connect_manager.stop()\n\n        self.running = False\n\n    def set_proxy(self, args):\n        logger.info(\"set_proxy:%s\", args)\n\n        self.config.PROXY_ENABLE = args[\"enable\"]\n        self.config.PROXY_TYPE = args[\"type\"]","sourceCodeStart":89,"sourceCodeEnd":125,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/x_tunnel/local/cloudflare_front/front.py#L89-L125","documentation":"CloudFlareFront.request received a non-200 HTTP status; logs method, host, path, status and the task trace for diagnosis.","triggerScenarios":"Any dispatcher response whose status != 200, e.g. 403/502/525 from the CloudFlare edge.","commonSituations":"CloudFlare blocking (403), origin errors (502/504), or CAPTCHA/challenge pages when the fronted host is unavailable.","solutions":["Inspect the logged status code: 403 suggests IP/SNI blocking, 5xx suggests origin issues","Rotate front IPs / domains","Verify the target host configuration"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"content, status, resp = front.request(...)\nif status != 200:\n    handle_block_or_origin_error(status)","preventionTips":["Handle 403 as IP-blocking signal and rotate fronts","Don't assume 200; always branch on status"],"tags":["cloudflare","http","status-code","front"],"backgroundTag":"http-non-200-response","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}