apache/iceberg · info

The iceberg transaction has been committed, but we failed to

Error message

The iceberg transaction has been committed, but we failed to clean the temporary flink manifests: {}

What it means

After a successful Iceberg commit, deleteCommittedManifests removes temporary Flink manifest files. Failure to delete them does not affect the committed transaction; the method logs this warning with job/checkpoint/manifest details and swallows the exception.

Source

Thrown at flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/sink/FlinkManifestUtil.java:181

  static void deleteCommittedManifests(
      String tableName,
      FileIO io,
      List<ManifestFile> manifestsPath,
      String newFlinkJobId,
      long checkpointId) {
    for (ManifestFile manifest : manifestsPath) {
      try {
        io.deleteFile(manifest.path());
      } catch (Exception e) {
        // The flink manifests cleaning failure shouldn't abort the completed checkpoint.
        String details =
            MoreObjects.toStringHelper(FlinkManifestUtil.class)
                .add("tableName", tableName)
                .add("flinkJobId", newFlinkJobId)
                .add("checkpointId", checkpointId)
                .add("manifestPath", manifest)
                .toString();
        LOG.warn(
            "The iceberg transaction has been committed, but we failed to clean the temporary flink manifests: {}",
            details,
            e);
      }
    }
  }
}

View on GitHub (pinned to 86d9c8fc54)

Solutions

  1. Safe to ignore in most cases - the commit succeeded and leftover files are cleaned by DeleteOrphanFiles
  2. Ensure orphan-file cleanup actions are scheduled to reclaim the leaked manifest files
  3. Avoid running expireSnapshots concurrently with the writing job
  4. Verify FileIO credentials/permissions remain valid for the job's lifetime
Defensive patterns

Strategy: try-catch

Prevention

When it happens

Trigger: deleteCommittedManifests is called after commit and the underlying FileIO throws while deleting a manifest or manifest-list file (already deleted by retention/orphan cleanup, permission denied, or transient storage error).

Common situations: ExpireSnapshots or DeleteOrphanFiles running concurrently removed the manifests first; S3/HDFS permission changes; short-lived credentials expiring mid-job.

Understand the failure class

Background: "Permission denied" / "Failed to write" file errors: why a library can't write its files to disk (EACCES, EPERM, ENOSPC) and how to fix them — this error's family across 43 libraries.

Related errors


AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12). Data as JSON: /api/errors/0cf0da41ba1bb300. Report an issue: GitHub.