Built something you're proud of? Tell the story. A quick G2 review of App Engine or Build Agent helps other developers see what's possible on ServiceNow. Share your experience.

Error Messages in the Flow Designer

KK2
Tera Contributor

The following error message is output when executing an action that requires approval for a form in the Flow Designer.
How to deal with it?

 

Operation:Create Approvals

Level:Error

 

Error running script engine: com.snc.process_flow.exception.PlanRecursionException: Plan recursion has been encountered:     com.snc.process_flow.engine.GlideProcessAutomation.checkRecursion(GlideProcessAutomation.java:811)
    com.snc.process_flow.engine.GlideProcessAutomation._start(GlideProcessAutomation.java:465)
    com.snc.process_flow.engine.GlideProcessAutomation.access$200(GlideProcessAutomation.java:77)
    com.snc.process_flow.engine.GlideProcessAutomation$StartBuilder.start(GlideProcessAutomation.java:1094)
    com.glide.flow_trigger.engine.TriggerRunner.startFlow(TriggerRunner.java:117)
    com.glide.flow_trigger.engine.RecordTriggerRunner.run(RecordTriggerRunner.java:99)
    com.glide.flow_trigger.engine.TriggerEngine.runEngine(TriggerEngine.java:98)
    com.glide.policy.AScriptEngine.process(AScriptEngine.java:34)
    com.glide.script.ScriptEngines.run(ScriptEngines.java:102)
    com.glide.script.GlideRecord.runScriptsAndEngines(GlideRecord.java:1358)
    com.glide.script.GlideRecord.postChange(GlideRecord.java:5147)
    com.glide.script.GlideRecord.postUpdate(GlideRecord.java:5115)
    com.glide.script.GlideRecord.updateWithoutResettingOperation(GlideRecord.java:4672)
    com.glide.script.GlideRecord.update(GlideRecord.java:4572)
    com.glide.script.GlideRecord.update(GlideRecord.java:4491)
    com.snc.process_flow.approvals.ApprovalHelper.addApprovalHistory(ApprovalHelper.java:194)
    com.snc.process_flow.approvals.ApprovalHelper.setGroupApprovalComment(ApprovalHelper.java:183)
    com.snc.process_flow.operation.CreateApprovalOperation.createGroupApproval(CreateApprovalOperation.java:581)
    com.snc.process_flow.operation.CreateApprovalOperation.createApprovals(CreateApprovalOperation.java:188)
    com.snc.process_flow.operation.CreateApprovalOperation.run(CreateApprovalOperation.java:120)
    com.snc.process_flow.engine.Operation.execute(Operation.java:202)
    com.snc.process_flow.engine.ProcessEngine.executeOps(ProcessEngine.java:536)
    com.snc.process_flow.engine.ProcessEngine.run(ProcessEngine.java:445)
    com.snc.process_flow.engine.ProcessAutomation.run(ProcessAutomation.java:66)
    com.snc.process_flow.engine.GlideProcessAutomation.runSync(GlideProcessAutomation.java:125)
    com.snc.process_flow.engine.GlideProcessAutomation.runWithDomain(GlideProcessAutomation.java:235)
    com.snc.process_flow.engine.GlideProcessAutomation.lambda$runAsUserSync$1(GlideProcessAutomation.java:204)
    com.snc.process_flow.engine.PFSessionClone.run(PFSessionClone.java:68)
    com.snc.process_flow.engine.GlidePFSession.runPlanAsUserSession(GlidePFSession.java:42)
    com.snc.process_flow.engine.GlideProcessAutomation.runAsUserSync(GlideProcessAutomation.java:202)
    com.snc.process_flow.engine.GlideProcessAutomation.messageFlow(GlideProcessAutomation.java:286)
    com.snc.process_flow.engine.GlideProcessAutomation.messageFlow(GlideProcessAutomation.java:270)
    com.snc.process_flow.engine.ProcessHubEventHandler.doSendMessage(ProcessHubEventHandler.java:453)
    com.snc.process_flow.engine.ProcessHubEventHandler.process(ProcessHubEventHandler.java:111)
    com.snc.process_flow.engine.ProcessHubEventHandler.process(ProcessHubEventHandler.java:83)
    com.snc.process_flow.engine.FlowEventManager.processEvents(FlowEventManager.java:118)
    com.glide.job.EventHandlerJob.execute(EventHandlerJob.java:37)
    com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:328)
    com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:210)
    com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:210)
    com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)

1 ACCEPTED SOLUTION

Maik Skoddow
Tera Patron

Hi

The PlanRecursionException is thrown when there is a recursive call to the flow itself from within the flow.

The recursion might be in any of the steps, including custom scripts or even in the Trigger's "Run Trigger" which might be set to 'For each unique change' (and there is an update to the trigger record in any of the flow steps).

Make sure that there are no recursions in the flow.

Maik

View solution in original post

2 REPLIES 2

Maik Skoddow
Tera Patron

Hi

The PlanRecursionException is thrown when there is a recursive call to the flow itself from within the flow.

The recursion might be in any of the steps, including custom scripts or even in the Trigger's "Run Trigger" which might be set to 'For each unique change' (and there is an update to the trigger record in any of the flow steps).

Make sure that there are no recursions in the flow.

Maik

maniGan
Tera Contributor

I am getting same error for OOB flow, can you let me know what fixes you have applied. 

 

Thanks,

Mani