{"record":{"id":"d5e7a62268a5f860","repo":"apache/seatunnel","slug":"all-candidate-sink-tables-were-skipped-in-flink-st-d5e7a6","errorCode":null,"errorMessage":"All candidate sink tables were skipped in Flink starter.","messagePattern":"All candidate sink tables were skipped in Flink starter\\.","errorType":"exception","errorClass":"TaskExecuteException","httpStatus":null,"severity":"critical","filePath":"seatunnel-core/seatunnel-flink-starter/seatunnel-flink-starter-common/src/main/java/org/apache/seatunnel/core/starter/flink/execution/AbstractSinkExecuteProcessor.java","lineNumber":219,"sourceCode":"\n            boolean sinkParallelism = sinkConfig.hasPath(EnvCommonOptions.PARALLELISM.key());\n            boolean envParallelism = envConfig.hasPath(EnvCommonOptions.PARALLELISM.key());\n            int parallelism =\n                    sinkParallelism\n                            ? sinkConfig.getInt(EnvCommonOptions.PARALLELISM.key())\n                            : envParallelism\n                                    ? envConfig.getInt(EnvCommonOptions.PARALLELISM.key())\n                                    : 1;\n\n            DataStreamSink<SeaTunnelRow> dataStreamSink =\n                    createVersionSpecificDataStreamSink(stream, sink, parallelism, sinkConfig);\n\n            if (sinkParallelism || envParallelism) {\n                dataStreamSink.setParallelism(parallelism);\n            }\n        }\n        if (!createdAnySink && !skippedTables.isEmpty()) {\n            throw new TaskExecuteException(\n                    MultiTableFailureHelper.formatFailedTableSummary(\n                            \"All candidate sink tables were skipped in Flink starter.\",\n                            skippedTables));\n        }\n        if (createdAnySink && !skippedTables.isEmpty()) {\n            LOGGER.warn(\n                    MultiTableFailureHelper.formatFailedTableSummary(\n                            \"Some sink tables were skipped in Flink starter.\", skippedTables));\n        }\n        // the sink is the last stream\n        return null;\n    }\n\n    /** Create version-specific DataStreamSink with multi-table and parallelism support. */\n    protected abstract DataStreamSink<SeaTunnelRow> createVersionSpecificDataStreamSink(\n            DataStreamTableInfo stream, SeaTunnelSink sink, int parallelism, Config sinkConfig);\n\n    // if not support multi table, rollback","sourceCodeStart":201,"sourceCodeEnd":237,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-core/seatunnel-flink-starter/seatunnel-flink-starter-common/src/main/java/org/apache/seatunnel/core/starter/flink/execution/AbstractSinkExecuteProcessor.java#L201-L237","documentation":"TaskExecuteException thrown in AbstractSinkExecuteProcessor.execute when all candidate sink tables were skipped during pre-write processing, so no sink was written for the job. MultiTableFailureHelper renders a per-table failure summary listing why each table was skipped.","triggerScenarios":"A Flink starter job where every sink (or every table of a multi-table sink) was skipped — typically due to failed save-mode handling, unsupported schema, or table-level pre-checks — leaving createdAnySink false with a non-empty skippedTables list.","commonSituations":"Target tables missing and auto-creation disabled; schema incompatibility between source data and target table; sink connector rejecting all configured catalog tables.","solutions":["Inspect the per-table skip reasons in the exception summary and fix each root cause","Configure save_mode so the sink can create or evolve target tables","Confirm connector/table compatibility for the target storage"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// verify each target table's schema compatibility before submit\nsink.factory().checkTargetTables(catalogTables).forEach(problem -> log.warn(problem));","typeGuard":null,"tryCatchPattern":"try {\n    processor.execute();\n} catch (TaskExecuteException e) {\n    log.error(\"All sink tables skipped: {}\", e.getMessage());\n    throw e;\n}","preventionTips":["Align source and target table schemas before submission","Configure save_mode to auto-create/evolve target tables","Validate connector support for all configured tables"],"tags":["flink","sink","multi-table"],"backgroundTag":"schema-validation-failed","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}