Failure happened on 'Source' side. Message=The semaphore timeout period has expired,Source=

Vanaja Kasturi 0 Reputation points
2025-05-13T13:19:04.2066667+00:00

Hi Team,

I am getting this below error while ingesting data from SQL Server to ADLS.While the same pipeline is running in dev environment with much higher data volume(2x).

Failure happened on 'Source' side. ErrorCode=UserErrorWriteFailedFileOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=The file operation is failed, upload file failed at path: 'test/VDIST/RDBI_REPORT/RDVDTRANSACTION/RDVDTRANSACTION_20250513.parquet'.,Source=Microsoft.DataTransfer.Common,''Type=System.Data.SqlClient.SqlException,Message=A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.),Source=.Net SqlClient Data Provider,SqlErrorNumber=121,Class=20,ErrorCode=-2146232060,State=0,Errors=[{Class=20,Number=121,State=0,Message=A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.),},],''Type=System.ComponentModel.Win32Exception,Message=The semaphore timeout period has expired,Source=,'

It is a CDC operation.I have tried retrying it multiple times but still same issue persists.Kindly help.

Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
11,623 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Smaran Thoomu 24,110 Reputation points Microsoft External Staff Moderator
    2025-05-13T14:16:37.9533333+00:00

    Hi @Vanaja Kasturi
    Thank you for reaching out and for the detailed error message.

    The error "The semaphore timeout period has expired" typically indicates a network connectivity issue or transient timeout between your SQL Server and the integration runtime (IR) in Azure Data Factory. While it’s working in dev with a higher volume, the issue in your current environment may be related to:

    Possible Causes:

    1. Network latency or instability between the self-hosted integration runtime and the source SQL Server.
    2. Resource exhaustion on the SQL Server or IR machine (CPU/memory/network).
    3. Firewall, VPN, or proxy timeouts affecting long-running data transfers.
    4. Large CDC result sets taking too long to transfer and hitting the OS-level TCP timeout.

    Suggested Actions:

    • Check the SQL Server health (CPU, memory, disk I/O) during the pipeline run.
    • Review the IR machine’s network performance and logs — ensure it has a reliable and fast connection to the SQL Server.
    • Split the load: If possible, try partitioning the CDC data or reducing the data batch size to see if smaller chunks succeed.
    • Set retry and timeout settings: Ensure your linked service and copy activity have retry policies configured. You can also consider increasing timeout values where applicable.

    If the issue persists, it may help to:

    • Test a manual connection from the IR machine to SQL Server (e.g., using SSMS).
    • Share details like:
      • Are you using self-hosted or Azure IR?
      • Estimated size of CDC data for this run?
      • Whether any recent network or SQL Server changes occurred in this environment?

    I hope this information helps. Please do let us know if you have any further queries.

    Kindly consider upvoting the comment if the information provided is helpful. This can assist other community members in resolving similar issues.

    1 person found this answer helpful.

Your answer

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