apache/seatunnel · critical · CommandExecuteException
SeaTunnel job executed failed
Error message
SeaTunnel job executed failed
What it means
ClientExecuteCommand.execute wraps its whole job-submission/wait logic in a try-catch and rethrows any Exception as CommandExecuteException('SeaTunnel job executed failed', e). It is a generic client-side wrapper: the original cause (network error, engine exception like 2562, serialization problem, client shutdown) is attached as the cause. Job statistics gathered so far are still logged in the finally block.
Solutions
- Inspect the nested cause (getCause / printed stack trace) to find the real failure.
- Verify the engine cluster is reachable and the cluster address in the client config (seatunnel.yaml / -m settings) is correct.
- Fix the underlying connector/config issue indicated by the cause, then resubmit.
- Ensure client and engine versions match.
Defensive patterns
Strategy: try-catch
Validate before calling
// check cluster reachability before submitting // curl http://<master>:5801/hazelcast/rest/state or verify seatunnel.yaml cluster settings
Try / catch
try { client.execute(); } catch (CommandExecuteException e) { Throwable root = e; while (root.getCause() != null) root = root.getCause(); log.error("Job execution failed, root cause: ", root); } Prevention
- Always inspect the cause chain — this exception is only a wrapper
- Confirm the engine cluster is up and the address in the client config is correct
- Keep client and engine versions aligned
- Dry-run configs before submission to catch config-level causes early
When it happens
Trigger: Any exception during execute: job submission fails, the REST/cluster client cannot reach the master node, waitForJobCompleteV2 throws, getJobMetricsSummary fails, or the SeaTunnelEngineException from a failed job propagates through this catch.
Common situations: Engine not running or wrong cluster address in the client config; job failed for connector reasons (see nested cause); interrupted client; version mismatch between client and cluster.
Related errors
- Execute Flink job error
- FILE_READ_FAILED
- Flink job executed failed
- ${jobResult.error}
- One or more fetchers have encountered exception
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/e27552945f5c0eb1.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-core/seatunnel-starter/src/main/java/org/apache/seatunnel/core/starter/seatunnel/command/ClientExecuteCommand.java:291
executorService.schedule(
new JobStatusRunner(engineClient.getJobClient(), jobId),
0,
TimeUnit.SECONDS);
}
// wait for job complete
JobResult jobResult = clientJobProxy.waitForJobCompleteV2();
jobStatus = jobResult.getStatus();
if (StringUtils.isNotEmpty(jobResult.getError())
|| jobResult.getStatus().equals(JobStatus.FAILED)) {
throw new SeaTunnelEngineException(jobResult.getError());
}
// get job end time
endTime = LocalDateTime.now();
// get job statistic information when job finished
jobMetricsSummary = engineClient.getJobMetricsSummary(jobId);
}
} catch (Exception e) {
throw new CommandExecuteException("SeaTunnel job executed failed", e);
} finally {
if (jobMetricsSummary != null) {
// print job statistics information when job finished
log.info(
StringFormatUtils.formatTable(
"Job Statistic Information",
"Start Time",
DateTimeUtils.toString(
startTime, DateTimeUtils.Formatter.YYYY_MM_DD_HH_MM_SS),
"End Time",
DateTimeUtils.toString(
endTime, DateTimeUtils.Formatter.YYYY_MM_DD_HH_MM_SS),
"Total Time(s)",
Duration.between(startTime, endTime).getSeconds(),
"Total Read Count",
jobMetricsSummary.getSourceReadCount(),
"Total Write Count",
jobMetricsSummary.getSinkWriteCount(),View on GitHub (pinned to cf67b549a7)