The Memory Circuit Breaker prevented this evaluation from completing due to insufficient resources.

Certified Associate Developer

Our user case is, We have an UI to manage the tasks where we have 2 dropdowns, Task Name and Precedent task name as shown below.
Task Name -> Precedent Task Name
Task A        -> ------
Task B       -> Task A
Task C       -> Task B

Condition is,
Task B can be dependent on Task A but Task A cannot be dependent on Task B
Tasks B & C can be dependent on Task A but Task A cannot be dependent on Task B or C
Task B can be dependent on Task A and Task C can be dependent on Task B, but Task A cannot be dependent on Task C.

Basically the requirement is to prevent creating circular logic among tasks. Since Task B is dependent on Task A, only if Task A is completed then Task B can be enabled. When user selects Task B or Task C as the precedent task for Task A, then a circular dependency will be created, hence to avoid this when user select B or C as Precedent task for Task A in UI, an error message should be shown.

Today we have 3 levels, in future we may have more levels, hence we have implemented the logic for N levels using recursive call, but now the problem is, we are facing Circuit Breaker issue. Is there any other option to achieve this N level logic other than recursive call please suggest.

Error:
Expression evaluation error [evaluation ID = 9cb0a:86a20] in rule 'abc_retrieveallprecedenttasks' (called by rules 'abc_retrieveallprecedenttasks' > 'abc_configurenewtaskforworkflow' > 'abc_manageworkflow') : The Memory Circuit Breaker prevented this evaluation from completing due to insufficient resources. Please contact your system administrator. (APNX-1-4510-000) (APNX-1-4510-000)

  Discussion posts and replies are publicly visible