apache/seatunnel · critical · TaskExecuteException

All candidate sink tables were skipped in Flink starter.

Error message

All candidate sink tables were skipped in Flink starter.

What it means

TaskExecuteException thrown in SinkExecuteProcessor.execute when every candidate sink table failed pre-write checks and was skipped, so no DataStream sink was created at all. MultiTableFailureHelper formats a summary of the failed tables with their failure reasons so the user can see why all sinks were dropped.

Source

Thrown at seatunnel-core/seatunnel-flink-starter/seatunnel-flink-13-starter/src/main/java/org/apache/seatunnel/core/starter/flink/execution/SinkExecuteProcessor.java:229

                                    .equalsIgnoreCase(envConfig.getString("job.mode"));
            DataStream<SeaTunnelRow> ds = stream.getDataStream();
            if (isStreaming && sink instanceof SupportSchemaEvolutionSink) {
                // insert broadcast-based schema operator to handle schema changes
                ds =
                        ds.transform(
                                        "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) {

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Read the per-table failure reasons in the formatted summary and fix the root cause (schema mismatch, missing table, etc.)
  2. Enable/adjust save_mode config so the sink can create/repair the target table
  3. Verify the sink connector supports the target table type on the Flink 1.13 starter
Defensive patterns

Strategy: validation

Validate before calling

// before submitting, verify target tables exist / are compatible
for (CatalogTable table : catalogTables) {
    if (!sink.supportsTable(table)) {
        log.warn("Table {} will be skipped", table.getTablePath());
    }
}

Try / catch

try {
    processor.execute();
} catch (TaskExecuteException e) {
    log.error("All sink tables skipped: {}", e.getMessage());
    throw e;
}

Prevention

When it happens

Trigger: Running a Flink (1.13) starter job where each sink plugin (or each table in a multi-table sink) was skipped during execution — e.g. schema/catalog incompatibility, save-mode pre-check failure, or unsupported table — and skippedTables is non-empty while createdAnySink stays false.

Common situations: Sink connector rejecting the target table schema; database table missing and save-mode create disabled; connector not supporting the configured catalog table in Flink 1.3 starter.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


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