A node dependency loop forms when a node is both an ancestor of other nodes and depends on one or more of its own descendant nodes. Nodes in a loop cannot be automatically scheduled.
How a dependency loop forms
In a DataWorks workflow, nodes run in dependency order: each node waits for its upstream nodes to finish before it starts. A loop forms when this chain circles back on itself — an ancestor node ends up depending on a descendant, leaving the scheduler with no valid execution order.
The most common cause: an ancestor node reads from a table that one of its descendant nodes writes to, within the same scheduling cycle. Because neither node can run first, both are blocked.
Example
The following three nodes form a loop:
Node A reads from Table C and writes results to Table A.
Node B cleanses Table A and writes results to Table B.
Node C cleanses Table B and writes results to Table C.
Node A depends on Table C, which Node C produces. Node C is a descendant of Node A. This creates the loop A → B → C → A.

Fix a dependency loop
Analyze the workflow and identify which dependency closes the loop. Remove or reconfigure that dependency.
If the ancestor node genuinely needs data produced by its descendant node, configure cross-cycle scheduling dependencies. This lets the ancestor node depend on the descendant node's output from the previous scheduling cycle instead of the current one, breaking the loop.
In the example above, configure a cross-cycle scheduling dependency between Node A and Node C so that Node A reads Table C from the previous cycle's run.
Monitoring and alerting
In the production environment, DataWorks scans all auto triggered tasks at 09:00, 12:00, 16:00, 20:00, and 22:00 every day. If a node dependency loop is detected, an alert notification is automatically sent to the node owner by text message or email.
If a loop forms within 10 minutes before a scheduled scan, it falls outside that scan's scope and is detected at the next scan.
When you receive an alert, take the following steps:
Identify the nodes involved in the loop.
Analyze the dependencies between those nodes to find where the cycle closes.
Remove or reconfigure the dependency that causes the loop. If the ancestor node requires data from a previous run, use cross-cycle scheduling dependencies.
Verify that the affected nodes return to normal scheduling after the fix.
Alert rules for node dependency loops are built-in rules provided by DataWorks. To change the alert contact, go to the Rule Management page. For more information, see Create a custom alert rule.