{"record":{"id":"f31b7baa1af0c079","repo":"XX-net/XX-Net","slug":"network-s-fail","errorCode":null,"errorMessage":"network %s fail","messagePattern":"network (.+?) fail","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/gae_proxy/local/check_local_network.py","lineNumber":144,"sourceCode":"        self._checking_num += 1\n        self._checking_lock.release()\n\n        network_ok = False\n        for url in self.urls:\n            if self._test_host(url):\n                network_ok = True\n                break\n            else:\n                if __name__ == \"__main__\":\n                    xlog.warn(\"test %s fail\", url)\n                time.sleep(1)\n\n        if network_ok:\n            self.last_check_time = time.time()\n            self.report_ok()\n            xlog.debug(\"network %s is ok, cost:%d ms\", self.type, 1000 * (time.time() - time_now))\n        else:\n            xlog.warn(\"network %s fail\", self.type)\n            self.network_stat = \"Fail\"\n            self.last_check_time = time.time()\n\n        self._checking_lock.acquire()\n        self._checking_num -= 1\n        self._checking_lock.release()\n\n    def triger_check_network(self, fail=False, force=False):\n        time_now = time.time()\n        if not force:\n            if self._checking_num > 0:\n                return\n\n            if fail or self.network_stat != \"OK\":\n                # Fail or unknown\n                if time_now - self.last_check_time < 3:\n                    return\n            else:","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/gae_proxy/local/check_local_network.py#L126-L162","documentation":"After trying all configured test URLs, none succeeded, so the network type is declared down: network_stat set to 'Fail' and last_check_time recorded. The checker will re-check later based on this state.","triggerScenarios":"_simple_check_worker exhausting self.urls with every _test_host failing — total outage or full blocking of that network path (e.g. direct connection completely blocked).","commonSituations":"No internet, DNS totally broken, all test domains blocked/firewalled, or system proxy misrouting all traffic.","solutions":["Verify physical connectivity and DNS resolution","If direct network is blocked but proxy works, rely on the proxy path and let XX-Net recheck automatically","Adjust the test URL list to include reachable hosts","Check system firewall/antivirus blocking the process"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Rely on proxy paths when the direct path reports Fail","Keep at least one guaranteed-reachable test URL","Re-check automatically on interval instead of caching failure"],"tags":["network","connectivity","status"],"backgroundTag":"connectivity-check-failed","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}