Forum Discussion

StefanHedenYE's avatar
StefanHedenYE
Regular Visitor
6 months ago

Copy Activity Reports Success but Writes Truncated Parquet Files (After migration to Sweden Region)

Hi everyone,

 

We are currently facing serious stability issues with Parquet files written to OneLake in Sweden region, which started immediately after migrating from Northern Europe.

This is not a new solution — it has been running stable for a long time in Northern Europe. No architectural or pipeline changes were made during the migration.

 


Architecture

  • Fabric Pipelines
  • Copy activity
  • Source → Parquet files in OneLake (Files/bronze)
  • ~120 tables loaded in parallel
  • Each table writes to its own unique path
  • No concurrent writes to the same file
  • No concurrent reads during write

No schema merge or overwrite conflicts


The Issue

Almost daily, one of our environments produces a Parquet file that:

  • Pipeline run = Success
  • File exists in OneLake

But Spark fails to read it

Error:

org.apache.spark.SparkException: [CANNOT_READ_FILE_FOOTER]Could not read footer for file: abfss://...parquet

Root cause:

java.lang.RuntimeException: ...parquet is not a Parquet file (length is too low: 4)

This strongly indicates that the file is truncated (essentially only a few bytes written) and the Parquet footer was never committed.


Why This Is Concerning

  • The same pipelines were stable for a long time in Northern Europe.
  • Problems started immediately after region migration.
  • Failures occur randomly across tables.
  • No solution changes were introduced.
  • The pipeline reports success despite the file being corrupt.

    This suggests that:

    • The write operation may not be fully committed before the activity completes.
    • There could be region-specific storage/commit behavior differences.
  • Or a potential issue in OneLake / Copy activity handling in Sweden region.

Questions

Has anyone experienced:

  • Copy activity reporting success while file is incomplete?
  • Region-specific stability differences?
  • Known issues in Sweden/Other region?

    At this point, this looks less like a workload design issue and more like a potential platform or regional infrastructure problem.

     

Any insights, confirmations, or similar experiences would be highly appreciated.
If we can not see a stable fix will we most likely redesign to use delta at ingest/bronze stage and avoid raw parquet totally.

 

Thanks.

5 Replies

  • Currently getting looked at through Fabric Partner Community Teams by Microsoft. Updating if we get a solution.

  • Hi StefanHedenYE ,

    If you receive any updates from the Microsoft team, please share them here. It will be helpful for other community members as well.

     

    Thank you.

  • Adding information here while waiting for an answer by MS on teams. It is clear that the failed runs complete successfully according to the activity status, but the resulting file size is only 4 bytes. In contrast, the successful runs produce files with a reasonable size. This indicates that something is clearly going wrong in some of the copy activities.

    Bad run

    Activity run ID: 3803286d-cde4-41cc-8f28-0ee87e4ac89d 
    Info: Reporting fine but look at rows read and written. 6320 rows written should not result in 4 bytes. The file in OneLake is corrupt/missing footer causing the error when trying to copy from parquet to delta in next step.

     

     

    Good run

    Activity run ID: acff942d-9df8-4984-bf6c-e09535cf600e

    Info: Lots more rows read and written, a size of data written that is expected.

  • Hi StefanHedenYE ,

    Thanks for sharing the additional details and the comparison between the good and bad runs. Writing 6320 rows resulting in a 4 byte file definitely indicates something went wrong during the write/commit stage.
    Since you already contacted Microsoft, please share any updates from the MS team here  it will help other community members facing similar issues.