{"record":{"id":"91bd703835833477","repo":"apache/seatunnel","slug":"rediserrorcode-04","errorCode":"RedisErrorCode-04","errorMessage":"No available nodes in cluster","messagePattern":"No available nodes in cluster","errorType":"error_code","errorClass":"RedisConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-redis/src/main/java/org/apache/seatunnel/connectors/seatunnel/redis/config/JedisWrapper.java","lineNumber":99,"sourceCode":"    public Set<String> smembers(final String key) {\n        return jedisCluster.smembers(key);\n    }\n\n    @Override\n    public long zadd(final String key, final double score, final String member) {\n        return jedisCluster.zadd(key, score, member);\n    }\n\n    @Override\n    public List<String> zrange(final String key, final long start, final long stop) {\n        return jedisCluster.zrange(key, start, stop);\n    }\n\n    @Override\n    public String info() {\n        Map<String, ConnectionPool> nodes = jedisCluster.getClusterNodes();\n        if (nodes.isEmpty()) {\n            throw new RedisConnectorException(\n                    GET_REDIS_INFO_ERROR, \"No available nodes in cluster\");\n        }\n\n        // Traverse all nodes and try to obtain the info\n        for (Map.Entry<String, ConnectionPool> entry : nodes.entrySet()) {\n            try {\n                Jedis jedis = getJedis(entry.getKey());\n                return jedis.info();\n            } catch (Exception e) {\n                log.warn(\"Failed to get info from node: {}\", entry.getKey(), e);\n            }\n        }\n\n        throw new RedisConnectorException(\n                GET_REDIS_INFO_ERROR, \"Failed to get redis info from all node in cluster\");\n    }\n\n    @Override","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-redis/src/main/java/org/apache/seatunnel/connectors/seatunnel/redis/config/JedisWrapper.java#L81-L117","documentation":"Thrown by JedisWrapper.info() for a Redis cluster: if jedisCluster.getClusterNodes() returns an empty map, no node is available, so the wrapper raises RedisConnectorException (GET_REDIS_INFO_ERROR) with 'No available nodes in cluster'.","triggerScenarios":"Calling info() on a cluster-mode Redis client when the cluster node map is empty — the JedisCluster was created against unreachable nodes or topology discovery returned nothing.","commonSituations":"All cluster nodes down or unreachable from the worker; misconfigured cluster seed nodes; JedisCluster initialized before the cluster finished formation; firewall blocking the cluster bus port (usually 10000 + data port).","solutions":["Verify seed node host:port entries in config are correct and reachable (telnet/redis-cli ping each node)","Check that cluster nodes are healthy with 'redis-cli cluster nodes' and that CLUSTER INFO shows cluster_state:ok","Open firewall access to both the client port (6379) and the cluster bus port (16379 by default)","Recreate/reconnect the JedisCluster client — the empty node map can persist after a failed initial discovery"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// before job: verify cluster reachable\nfor (String n : nodes) { try (Jedis j = new Jedis(host, port)) { j.ping(); } }","typeGuard":null,"tryCatchPattern":"try { String info = wrapper.info(); } catch (RedisConnectorException e) {\n  // recreate JedisCluster to refresh topology, then retry after backoff\n}","preventionTips":["Verify all seed nodes are reachable from workers before submission","Keep cluster_state:ok and monitor with CLUSTER INFO","Open both client port and cluster bus port (port+10000) in firewalls","Rebuild JedisCluster clients after topology changes"],"tags":["redis","cluster","topology","connectivity"],"backgroundTag":"connection-refused","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}