apache/flink · error · TableException

Exception in finish

Error message

Exception in finish

What it means

TableException wrapper from BatchPartitionCommitterSink.finish: any failure while committing partitions at end of batch input (filesystem committer or metastore interaction) is rethrown as 'Exception in finish'.

Solutions

  1. Address the cause reported by the error message: Exception in finish
  2. Verify the inputs, configuration values, and classpath/dependency setup related to this operation, then retry.

Example fix

Correct the condition described ("Exception in finish") and rerun the job or command.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Triggered at runtime when the operation fails because: Exception in finish.

Common situations: Commonly caused by misconfiguration, missing dependencies or files, unsupported types or operations, or invalid user input leading to: Exception in finish.


AI-assisted analysis of apache/flink@2f3c205e92 (2026-08-14). Data as JSON: /api/errors/20c4a338be41358e. Report an issue: GitHub.

Appendix: source

Thrown at flink-connectors/flink-connector-files/src/main/java/org/apache/flink/connector/file/table/batch/compact/BatchPartitionCommitterSink.java:131

                                    }
                                });
            }
            // commit the partitions with the given files
            // it will move the written temporary files to partition's location
            FileSystemCommitter committer =
                    new FileSystemCommitter(
                            fsFactory,
                            msFactory,
                            overwrite,
                            tmpPath,
                            partitionColumns.length,
                            isToLocal,
                            identifier,
                            staticPartitions,
                            policies);
            committer.commitPartitionsWithFiles(partitionsFiles);
        } catch (Exception e) {
            throw new TableException("Exception in finish", e);
        } finally {
            try {
                fsFactory.create(tmpPath.toUri()).delete(tmpPath, true);
            } catch (IOException ignore) {
            }
        }
    }

    @Override
    public void close() throws Exception {
        staticPartitions.clear();
        partitionsFiles.clear();
    }
}

View on GitHub (pinned to 2f3c205e92)