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
- Start the cluster first: `sh bin/seatunnel-cluster.sh -d` (with matching -cn)
- Confirm the cluster process is alive (jps / ps) and Hazelcast port is listening
- Verify the -cn value matches a running cluster, not a stale name
- 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
- Start the cluster before running -m
- Monitor cluster process liveness with jps/systemd
- Retry membership queries with backoff during cluster startup
- Confirm the -cn targets an actually running cluster
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
- Cluster name is required. Please specify it using -cn or --c
- Failed to get cluster members information
- Not supported cluster role: ${clusterRole}
- cluster have no master node
- Node heartbeat timeout, disconnected for resource manager. N
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/cc0e197abca30524.
Report an issue: GitHub.