apache/seatunnel · warning

Skip failed sink table in Flink starter: {}

Error message

Skip failed sink table in Flink starter: {}

What it means

SinkExecuteProcessor.logSkippedTable records a failed sink table (table path, phase, plugin name, and the error) into the skipped-tables collections and logs this warning with the formatted failure line and the full exception. It is the mechanism that lets multi-table Flink jobs tolerate a single table failure without aborting the whole job.

Source

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

        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. Read the warning's formatted line and stack trace to find the exact table path, plugin, and root error.
  2. Fix the root cause for that table (create target table, align schema, correct connector options) and rerun the job.
  3. If all tables fail, the companion 'All candidate sink tables were skipped' exception will abort — treat that as a job-level config problem.
  4. Set per-table failure handling to fail the job if silent skipping is undesired for your SLA.
Defensive patterns

Strategy: validation

Prevention

When it happens

Trigger: During execute(), creating or initializing the sink for one catalog table throws an exception (connection failure, schema mismatch, missing target table, invalid config); the catch block calls logSkippedTable(catalogTable, phase, error).

Common situations: Target table absent or schema drift between source and sink; wrong credentials/endpoint for one database in a multi-db pipeline; unsupported data type in one table's schema; transient network error during sink initialization.

Related errors


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