{"record":{"id":"f963793b1306f17b","repo":"alibaba/nacos","slug":"no-available-server-currentserveraddr-currents","errorCode":null,"errorMessage":"no available server, currentServerAddr : {currentServerAddr}","messagePattern":"no available server, currentServerAddr : (.+?)","errorType":"exception","errorClass":"ConnectException","httpStatus":null,"severity":"critical","filePath":"client/src/main/java/com/alibaba/nacos/client/config/http/ServerHttpAgent.java","lineNumber":179,"sourceCode":"                    ex);\n                throw ex;\n            }\n            \n            if (serverListMgr.getIterator().hasNext()) {\n                currentServerAddr = serverListMgr.getIterator().next();\n            } else {\n                maxRetry--;\n                if (maxRetry < 0) {\n                    throw new ConnectException(\n                        \"[NACOS HTTP-POST] The maximum number of tolerable server reconnection errors has been reached\");\n                }\n                serverListMgr.refreshCurrentServerAddr();\n            }\n            \n        } while (System.currentTimeMillis() <= endTime);\n        \n        LOGGER.error(\"no available server, currentServerAddr : {}\", currentServerAddr);\n        throw new ConnectException(\"no available server, currentServerAddr : \" + currentServerAddr);\n    }\n    \n    @Override\n    public HttpRestResult<String> httpDelete(String path, Map<String, String> headers,\n        Map<String, String> paramValues,\n        String encode, long readTimeoutMs) throws Exception {\n        final long endTime = System.currentTimeMillis() + readTimeoutMs;\n        String currentServerAddr = serverListMgr.getCurrentServer();\n        int maxRetry = this.maxRetry;\n        HttpClientConfig httpConfig = HttpClientConfig.builder()\n            .setReadTimeOutMillis(Long.valueOf(readTimeoutMs).intValue())\n            .setConTimeOutMillis(\n                ConfigHttpClientManager.getInstance().getConnectTimeoutOrDefault(100))\n            .build();\n        do {\n            try {\n                Header newHeaders = Header.newInstance();\n                if (headers != null) {","sourceCodeStart":161,"sourceCodeEnd":197,"githubUrl":"https://github.com/alibaba/nacos/blob/9b989acdf181d00898f2e8839257bb2b2a3cefe3/client/src/main/java/com/alibaba/nacos/client/config/http/ServerHttpAgent.java#L161-L197","documentation":"Thrown by ServerHttpAgent.httpPost when the time window (readTimeoutMs) expires before a successful POST and before retry exhaustion. The loop condition currentTimeMillis() <= endTime became false while still iterating servers. The message includes currentServerAddr to show which node was last attempted.","triggerScenarios":"POST attempts each take long enough (slow TLS handshakes, read timeouts) that the cumulative wall-clock exceeds endTime; the deadline elapses mid-retry.","commonSituations":"Short write timeout, high-latency network, or a server that accepts connections but responds very slowly (e.g. GC stall, disk contention on the server).","solutions":["Increase the POST readTimeoutMs for config write calls.","Investigate server-side latency (GC logs, disk I/O, thread dumps) on currentServerAddr.","Reduce network hops/latency between client and the cluster.","If the address is stale/wrong, ensure serverListMgr has the correct, current server list."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// set a generous write timeout\nlong writeTimeoutMs = Math.max(readTimeoutMs, 10_000);","typeGuard":null,"tryCatchPattern":"try {\n    configService.publishConfig(dataId, group, content);\n} catch (Exception e) {\n    if (e.getMessage().startsWith(\"no available server, currentServerAddr\")) {\n        log.error(\"write timed out against {}\", e.getMessage());\n    }\n}","preventionTips":["Increase the write readTimeoutMs.","Investigate slow server responses (GC, disk).","Keep the server list lean and current."],"tags":["network","config","http-post","client","timeout"],"backgroundTag":null,"analyzedSha":"9b989acdf181d00898f2e8839257bb2b2a3cefe3","analyzedAt":"2026-08-14T07:17:31.569Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}