apache/seatunnel · warning

Skip failed sink table in Spark starter: {}

Error message

Skip failed sink table in Spark starter: {}

What it means

Emitted by the Spark starter's SinkExecuteProcessor.logSkippedTable when an exception occurs while initializing a single sink table. The starter catches the exception, adds the table to the skipped set, and logs this warning with a formatted failure line plus the full error so the remainder of the multi-table job can continue.

Source

Thrown at seatunnel-core/seatunnel-spark-starter/seatunnel-spark-2-starter/src/main/java/org/apache/seatunnel/core/starter/spark/execution/SinkExecuteProcessor.java:259

        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);
        log.warn(
                "Skip failed sink table in Spark starter: {}",
                MultiTableFailureHelper.formatFailedTableLine(failedTable),
                error);
    }
}

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Inspect the stack trace attached to this warning for the failing table's root cause.
  2. Correct that table's sink config or environment and resubmit the job.
  3. Decide explicitly whether skip-on-failure semantics are acceptable for your data pipeline.
Defensive patterns

Strategy: try-catch

Validate before calling

assertSinkWritable(catalogTable.getTablePath());

Try / catch

try {
    job.run();
} catch (Exception e) {
    reconcileTablesSkippedPerLog("Skip failed sink table in Spark starter");
}

Prevention

When it happens

Trigger: Any exception during per-table sink preparation/writer creation inside execute()'s try/catch (bad credentials, unreachable sink, schema incompatibility, missing plugin class).

Common situations: One of several output databases is down or has wrong credentials; table schema changed upstream; missing Spark connector jar for one target format.

Related errors


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