IExecutionContext.Depth Property


Gets the current depth of execution in the call stack.

 property int Depth { int get(); };
public int Depth { get; }
member this.Depth : int
Public ReadOnly Property Depth As Integer

Property Value


Type: Int32T the current depth of execution in the call stack.


Used by the platform for infinite loop prevention. In most cases, this property can be ignored.

Every time a running plug-in or Workflow issues a message request to the Web services that triggers another plug-in or Workflow to execute, the Depth property of the execution context is increased. If the depth property increments to its maximum value within the configured time limit, the platform considers this behavior an infinite loop and further plug-in or Workflow execution is aborted.

The maximum depth (8) and time limit (one hour) are configurable by the Microsoft Dynamics 365 administrator using the PowerShell command Set-CrmSetting. The setting is WorkflowSettings.MaxDepth. For more information, see, “Administer the deployment using Windows PowerShell” in the Deploying and administering Microsoft Dynamics CRM.

You should not take a business logic dependency on this value. The value is relative and may change without notice. It is possible for this value to be -1 or 0 within your plug-in code under certain circumstances.

Applies to

See also