How to restart workflow process instances from previously failed task?

We have defined workflows (BPMN diagrams) that are executed by the Zeebe workflow engine.

Is it possible to restart a previously failed process instance from the last failed task (user/service)? If so, kindly guide me on how to do so programmatically.

Thanks.

Hi @JGeek,

In Camunda Platform 8, we don’t support restarting of process instances yet. If the process instance is completed or terminated then it’s done and you’re not able to restart it.

But tasks within an active process instance can be retried. If a task failed then an incident is created. The incident can be resolved and it will retry the task.

We’re currently working on the feature to start a process instance anywhere, not just on the start event. This new feature will enable use cases, for example, to restart a process instance from a task.

Best regards,
Philipp

2 Likes

This new feature will enable use cases, for example, to restart a process instance from a task.

Though this will allow starting a process from a given task (not just start event) but it won’t have the state of the previously executed process instance right?

Thanks.

Correct. But you will be able to set variables. So, you could copy the variables from the previous process instance and use them to create the new instance at the selected activity.

BTW, we’re also working on the process instance modification topic. The modification will be applied to active process instances and allows to move active tokens (i.e. element instances).

1 Like

Hi @JGeek,

With 8.1 release (October), we brought Process Instance Modification and Start Process Instance anywhere features. This can help you to repair process instances that ended up in the wrong state by repeating or skipping steps. You can easily move running flow nodes, add new or cancel existing ones via Operate UI.

Did you have a chance to check this feature? Does it work as expected or do you miss something there?

I’m curious about your feedback :slight_smile:
Aleksander