Azure Synapse Link loads 0 data for model.json file when tried to load using Snowpipe

Nithya Chandran 0 Reputation points
2026-08-24T10:12:15.3366667+00:00

Hello,

I have a scenario where Azure Synapse link loads data to blob storage. Initially when the model.json file is created, it created 0 size file and it triggers the event and snowpipe assume it as the correct and valid file ad tried to load to snowflake table. But I could see the file is getting loaded later with all partitioned data and since the snowpipe already processed the same file from same location, the file will not be processed later resulting model.json data loss. How this can be resolved.

Regards,

Nithya

Azure Synapse Analytics
Azure Synapse Analytics

An Azure analytics service that brings together data integration, enterprise data warehousing, and big data analytics. Previously known as Azure SQL Data Warehouse.


1 answer

Sort by: Most helpful
  1. Himaja Y 375 Reputation points Microsoft External Staff Moderator
    2026-08-24T11:08:26.1166667+00:00

    Hi @Nithya Chandran ,

    Thank you for reaching out to the Microsoft Q&A forum. 

    This looks like a timing issue between Synapse Link and Snowpipe.

    Synapse Link first creates model.json with 0 bytes. This triggers the Blob event, and Snowpipe starts processing it immediately. Later, Synapse Link writes the actual content to the same file. Since Snowpipe has already processed that file, it may not process the updated file again.

    Recommended solution:

    Do not trigger Snowpipe directly when model.json is initially created.

    Instead, use a file readiness check:

    1. Wait until model.json has content.
    2. Confirm the required partition/data files are available.
    3. Then trigger Snowpipe.

    A better approach is to create a separate marker file after Synapse Link finishes, for example:

    model.json

    model.json.ready

    Trigger Snowpipe only after model.json.ready is created.

    This ensures Snowpipe processes the data only after the Synapse Link output is completely available and avoids losing data because of the initial 0-byte model.json.

    You can also check COPY_HISTORY and SYSTEM$PIPE_STATUS to confirm whether Snowpipe processed the file before it was populated.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.