Processes are not allowed to contain a straight-through processing loop

Hi,
Since Zeebe still doesnt support built-in loop, Im building loop process and I can see modeler throwing exception. When I deploy the model, it successfully deployed as well as initiated the process as well. So is this a bug in modeler?

Exception:

> A <Process> is not allowed to contain a straight-through processing loop: <Activity_1bn5ffb>, <Gateway_0cgxgo5>

Sample Main Process:

Child:
image

Zeebe Version Details:
Camunda Modeler : 5.19.0
Zeebe: 8.4.0

Let me know your inputs.

Thank you in advance :slight_smile:

So this looks like an error that’s intended to catch infinite loops or processes that finish right after starting without doing anything.

Let me look into this, because this shouldn’t cause either of those problems if you have user tasks.

Hi @Niall,
Did you get a chance to check on this?

Thank you…

I wasn’t able to replicate it.
Can you upload the models you created and i’ll take a closer look

diagram_1.bpmn (5.0 KB)
ProcessB.bpmn (2.3 KB)

Hi @Niall
Attached 2 files. If you open them in desktop modeler, it will throw validation message as given below.

modeler version: 5.19.0
zeebe: 8.4.0

So, it looks like in this case the linting tool is getting a little overzealous. It’s managed to catch what it thinks may result in an infinite loop - but in your case, it obviously wouldn’t. So we’re going to look into fix this.

1 Like

Hi Niall, I got the same error message when modelling my process. Any update on a f fix for this issue?

Can you upload your process so that i can take a look?

Recruitment Process.bpmn (24.0 KB)

Hi @clam

In your case the error has been thrown correctly. Your process has the potential for an infinite loop and the error you’re seeing is designed to catch processes that if deployed and run would end up just running until the server crashes

This is down to the fact that the tasks in the process have no task type so the engine won’t stop when they’re reached. To deploy this model you simply need to convert the tasks to a specific task type like a User Task.