apache/seatunnel · error · SeaTunnelEngineException

cluster: %s is not running, Please start the cluster first.

Error message

cluster: %s is not running, Please start the cluster first.

What it means

After connecting a Hazelcast client with the given cluster name, showClusterMembers checks whether the client's lifecycle service reports the cluster as running. If not, it throws this SeaTunnelEngineException naming the cluster, telling the operator to start the cluster before querying members. Note that in practice the client connect usually fails earlier with its own exception if no node is listening, which is wrapped by the same method's generic handler.

Source

Thrown at seatunnel-core/seatunnel-starter/src/main/java/org/apache/seatunnel/core/starter/seatunnel/command/ServerExecuteCommand.java:130

        }
    }

    @VisibleForTesting
    public Set<Member> showClusterMembers() {
        HazelcastClientInstanceImpl client = null;
        try {
            String clusterName = serverCommandArgs.getClusterName();
            if (StringUtils.isBlank(clusterName)) {
                throw new SeaTunnelEngineException(
                        "Cluster name is required. Please specify it using -cn or --cluster option.");
            }
            ClientConfig clientConfig = ConfigProvider.locateAndGetClientConfig();
            clientConfig.setClusterName(clusterName);
            client =
                    ((HazelcastClientProxy) HazelcastClient.newHazelcastClient(clientConfig))
                            .client;
            if (!client.getLifecycleService().isRunning()) {
                throw new SeaTunnelEngineException(
                        String.format(
                                "cluster: %s is not running, Please start the cluster first.",
                                clusterName));
            }
            Set<Member> members = client.getCluster().getMembers();
            if (members.isEmpty()) {
                System.out.println("No active members found in the cluster.");
                return members;
            }

            Collection<Member> memberList = client.getClientClusterService().getMemberList();

            Member masterMember = client.getClientClusterService().getMasterMember();
            System.out.printf(
                    "%-36s %-20s %-20s %-10s\n", "Member ID", "Address", "Role", "Version");

            for (Member member : members) {
                System.out.printf(

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Start the cluster first: `sh bin/seatunnel-cluster.sh -d` (with matching -cn)
  2. Confirm the cluster process is alive (jps / ps) and Hazelcast port is listening
  3. Verify the -cn value matches a running cluster, not a stale name
  4. Retry after the cluster finishes startup; membership queries need a joined cluster

Example fix

// before
sh bin/seatunnel-cluster.sh -m -cn seatunnel-cluster   # cluster not started
// after
sh bin/seatunnel-cluster.sh -d -cn seatunnel-cluster
sh bin/seatunnel-cluster.sh -m -cn seatunnel-cluster
Defensive patterns

Strategy: validation

Validate before calling

// Check cluster is reachable before querying members
try (Socket s = new Socket(host, 5801)) {
    // cluster port reachable
} else { start cluster first }

Try / catch

try {
    Set<Member> members = command.showClusterMembers();
} catch (SeaTunnelEngineException e) {
    if (e.getMessage().contains("is not running")) {
        log.error("Start the cluster with seatunnel-cluster.sh -d first");
    }
}

Prevention

When it happens

Trigger: Running `seatunnel-cluster.sh -m -cn <name>` where the Hazelcast client instance reports isRunning() == false — the target cluster with that name is down or was shut down between connect and the check.

Common situations: Querying members after the cluster crashed, pointing at a cluster name with no running nodes, or a cluster still starting up (not yet joined) when the members command fires.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/cc0e197abca30524. Report an issue: GitHub.