apache/seatunnel · warning
Some sink tables were skipped in Flink starter.
Error message
Some sink tables were skipped in Flink starter.
What it means
In SinkExecuteProcessor.execute (Flink 1.3 starter), when some but not all candidate sink tables were skipped due to per-table write failures, the processor logs this warning summarizing which tables were skipped and why, while still building the Flink job for the successfully created sinks. It is a partial-failure signal: the job runs, but data for the listed tables will not be written.
Source
Thrown at seatunnel-core/seatunnel-flink-starter/seatunnel-flink-13-starter/src/main/java/org/apache/seatunnel/core/starter/flink/execution/SinkExecuteProcessor.java:235
"BroadcastSchemaHandler",
TypeInformation.of(SeaTunnelRow.class),
new BroadcastSchemaSinkOperator())
.name("BroadcastSchemaHandler")
.setParallelism(parallelism);
}
DataStreamSink<SeaTunnelRow> dataStreamSink =
ds.sinkTo(new FlinkSink<>(sink, stream.getCatalogTables(), parallelism))
.name(String.format("%s-Sink", sink.getPluginName()));
dataStreamSink.setParallelism(parallelism);
}
if (!createdAnySink && !skippedTables.isEmpty()) {
throw new TaskExecuteException(
MultiTableFailureHelper.formatFailedTableSummary(
"All candidate sink tables were skipped in Flink starter.",
skippedTables));
}
if (createdAnySink && !skippedTables.isEmpty()) {
LOGGER.warn(
MultiTableFailureHelper.formatFailedTableSummary(
"Some sink tables were skipped in Flink starter.", skippedTables));
}
// the sink is the last stream
return null;
}
// if not support multi table, rollback
public SeaTunnelSink tryGenerateMultiTableSink(
Map<TablePath, SeaTunnelSink> sinks,
ReadonlyConfig sinkConfig,
ClassLoader classLoader) {
if (sinks.isEmpty()) {
return null;
}
if (sinks.values().stream().anyMatch(sink -> !(sink instanceof SupportMultiTableSink))) {
LOGGER.info("Unsupported multi table sink api, rollback to sink template");
// choose the first sinkView on GitHub (pinned to cf67b549a7)
Solutions
- Inspect the formatted skipped-table summary in the log to identify the failing table path, plugin, phase, and root cause error.
- Fix the specific table's issue (create missing target table, fix schema/type mismatch, correct credentials) and rerun.
- If failing tables should abort the whole job instead of being skipped, change the sink-level failure handling configuration (per-table failure tolerance) to fail-fast.
Defensive patterns
Strategy: validation
Prevention
- Search logs for 'Skip failed sink table' to find per-table root causes before the summary
- Validate target tables/schemas exist for every source table before launching multi-table jobs
- Configure per-table failure handling to fail-fast if skipping is unacceptable
When it happens
Trigger: During execute(), one or more sink DataStream/tables failed during creation (exception caught by logSkippedTable and added to skippedTables) while at least one other sink was created successfully (createdAnySink == true).
Common situations: Multi-table CDC jobs where one downstream table has an incompatible schema or missing target table; permission problems on a single database; one connector config error among several otherwise-valid sink tables.
Related errors
- All candidate sink tables were skipped in Flink starter.
- All candidate sink tables were skipped in Flink starter.
- Skip failed sink table in Flink starter: {}
- Some sink tables were skipped in Flink starter.
- Skip failed sink table in Flink starter: {}
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/c1cc71f3080cba66.
Report an issue: GitHub.