{"record":{"id":"f7ee2c04c82063f6","repo":"apache/iceberg","slug":"rewrite-data-file-error-f7ee2c","errorCode":null,"errorMessage":"Rewrite data file error.","messagePattern":"Rewrite data file error\\.","errorType":"exception","errorClass":"java.lang.RuntimeException","httpStatus":null,"severity":"error","filePath":"flink/v2.3/flink/src/main/java/org/apache/iceberg/flink/actions/RewriteDataFilesAction.java","lineNumber":62,"sourceCode":"        \"Flink does not support compaction on row lineage enabled tables (V3+)\");\n  }\n\n  @Override\n  protected FileIO fileIO() {\n    return table().io();\n  }\n\n  @Override\n  protected List<DataFile> rewriteDataForTasks(List<CombinedScanTask> combinedScanTasks) {\n    int size = combinedScanTasks.size();\n    int parallelism = Math.min(size, maxParallelism);\n    DataStream<CombinedScanTask> dataStream = env.fromData(combinedScanTasks);\n    RowDataRewriter rowDataRewriter =\n        new RowDataRewriter(table(), caseSensitive(), fileIO(), encryptionManager());\n    try {\n      return rowDataRewriter.rewriteDataForTasks(dataStream, parallelism);\n    } catch (Exception e) {\n      throw new RuntimeException(\"Rewrite data file error.\", e);\n    }\n  }\n\n  @Override\n  protected RewriteDataFilesAction self() {\n    return this;\n  }\n\n  public RewriteDataFilesAction maxParallelism(int parallelism) {\n    Preconditions.checkArgument(parallelism > 0, \"Invalid max parallelism %s\", parallelism);\n    this.maxParallelism = parallelism;\n    return this;\n  }\n}\n","sourceCodeStart":44,"sourceCodeEnd":77,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/flink/v2.3/flink/src/main/java/org/apache/iceberg/flink/actions/RewriteDataFilesAction.java#L44-L77","documentation":"Top-level wrapper exception for the rewrite-data-files action: RowDataRewriter.rewriteDataForTasks threw while rewriting combined scan tasks, and the action rethrows as RuntimeException('Rewrite data file error.') with the cause chained.","triggerScenarios":"Any failure inside the distributed rewrite of data files — writer failures, serialization/deserialization of tasks, IO errors writing new parquet files, or execution exceptions from the Flink datastream.","commonSituations":"Target location not writable (permissions/credentials); schema incompatibility when re-reading old files; task manager OOM during large rewrites.","solutions":["Inspect the chained cause for the actual failure (IO, schema, OOM) and fix that first.","Verify FileIO credentials/permissions for both source and target locations.","Reduce parallelism or rewrite smaller task groups; rerun the action (it is retryable)."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"table.io().newInputFile(...); // verify readable\ntable.io().newOutputFile(target); // verify writable via dry-run if available","typeGuard":null,"tryCatchPattern":"try { result = action.execute(); } catch (RuntimeException e) { LOG.error(\"Rewrite failed\", e.getCause()); /* retry or re-scope */ }","preventionTips":["Check FileIO credentials and target directory permissions first.","Run rewrites in smaller batches; monitor TaskManager memory.","The action is idempotent-ish per task group — safe to rerun after fixing the root cause."],"tags":["flink","maintenance","rewrite"],"backgroundTag":"file-write-failed","analyzedSha":"86d9c8fc543e7c56c9f624eb725f76c9baff9570","analyzedAt":"2026-09-12T00:46:39.097Z","contentChangedAt":"2026-09-12T00:46:39.097Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}