apache/seatunnel · warning

Skip failed sink table in Flink starter: {}

Error message

Skip failed sink table in Flink starter: {}

What it means

Emitted by AbstractSinkExecuteProcessor.logSkippedTable when an exception occurs while preparing/creating an individual sink table in the Flink starter. The starter catches the error, records the table in the skipped set, and logs this warning with a formatted failure line and the full exception, allowing the rest of the multi-table job to proceed.

Source

Thrown at seatunnel-core/seatunnel-flink-starter/seatunnel-flink-starter-common/src/main/java/org/apache/seatunnel/core/starter/flink/execution/AbstractSinkExecuteProcessor.java:295

        return new RuntimeException(error);
    }

    private void logSkippedTable(
            List<MultiTableFailedTable> currentSkippedTables,
            List<MultiTableFailedTable> skippedTables,
            CatalogTable catalogTable,
            Config sinkConfig,
            MultiTableFailurePhase phase,
            Throwable error) {
        MultiTableFailedTable failedTable =
                MultiTableFailureHelper.buildFailedTable(
                        catalogTable.getTablePath().getFullName(),
                        phase,
                        sinkConfig.getString(PLUGIN_NAME.key()),
                        error);
        currentSkippedTables.add(failedTable);
        skippedTables.add(failedTable);
        LOGGER.warn(
                "Skip failed sink table in Flink starter: {}",
                MultiTableFailureHelper.formatFailedTableLine(failedTable),
                error);
    }
}

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Inspect the attached exception (stack trace follows this warning) to find the root cause for that table path.
  2. Fix the sink config or environment for the failing table and resubmit the job.
  3. If the table should fail the whole job instead of being skipped, adjust skip/failure handling for multi-table execution.
Defensive patterns

Strategy: try-catch

Validate before calling

// verify sink connectivity per table before job submission
assertSinkWritable(catalogTable.getTablePath());

Try / catch

try {
    job.execute();
} catch (Exception e) {
    // check log for 'Skip failed sink table in Flink starter' entries to map which tables lost data
    reconcileSkippedTables();
}

Prevention

When it happens

Trigger: Any exception during sink initialization for a table (writer creation, catalog table preparation, connection failure) inside execute()'s per-table try/catch; logSkippedTable then records it.

Common situations: Wrong username/password or unreachable host for one target table; incompatible schema between source and sink table; missing sink plugin jar.

Related errors


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