Why is FailureWebHook not executed in this case?

Psychotechnopath 51 Reputation points
2024-07-23T12:10:36.8466667+00:00

Please consider the following pipeline. The Execute Pipeline activity failed, so the ProcessTMONData notebook was skipped. Why was the failure webhook not triggered, as it's supposed to trigger when EITHER:

  • ForEachEndpoint fails
  • ProcessTMONData is skipped
  • ProcessTMONData fails

Please help me understand the control flow behavior of azure synapse.

User's image

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.
4,913 questions
Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
10,663 questions
0 comments No comments
{count} votes

Accepted answer
  1. Bhargava-MSFT 31,006 Reputation points Microsoft Employee
    2024-07-23T20:51:23.3566667+00:00

    Hello Psychotechnopath,

    From your pipeline:

    The ForEachEndpoint is connected to "failurewebhook" on failure, meaning 'failurewebhook' runs only when ForEachEndpoint fails.

    Additionally, your ExecutePipeline is connected to the Notebook on success. The Notebook didn't run because the connected activity failed, and subsequently, the 'failurewebhook' didn't run because the Notebook didn't start.

    Due to these two reasons, 'failurewebhook' didn't get executed.

    User's image

    I hope this answers your question.

    1 person found this answer helpful.

1 additional answer

Sort by: Most helpful
  1. Amira Bedhiafi 24,376 Reputation points
    2024-07-23T19:53:34.25+00:00

    Your notebook activity depends on the completion of the Execute Pipeline activity.

    The FailureWebHook webhook is set to trigger under the following conditions:

    • ForEachEndpoint fails
    • ProcessTMONData is skipped
    • ProcessTMONData fails

    Given that the Execute Pipeline activity failed, it resulted in the ProcessTMONData notebook being skipped. Since the ProcessTMONData notebook was skipped, one would expect the FailureWebHook to trigger according to your specified conditions. This is the expected behavior.

    So you may need to verify that the FailureWebHook activity is correctly dependent on the ProcessTMONData activity because it should have a dependency with a condition that it runs if ProcessTMONData is skipped.

    It should be configured to trigger on the state of the ProcessTMONData notebook and you can use the expression @activity('ProcessTMONData').status to check if it is Skipped.


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.