BPMN.io modeller keeps previously removed items and ECA still executes them

Created on 4 March 2025, 2 months ago

Problem/Motivation

We've had a situation where an existing ECA configuration still held and action although it did not exist anymore in the user interface. It was reported that the item got removed by the user and the model was regularly saved on the UI.

So the action was still there, and it was also still attached as a successor of another action. This lead to the situation that it was still executed, although it was not supposed to be.

The user interface of the BPMN.io modeller was not showing that relict anymore, even re-saving didn't remove it. The only possible way to fix this was to manually rebuild the whole model with a new configuration.

Steps to reproduce

Unfortunately I'm not allowed to share the model, and since this doesn't happen often (but it does), it's currently hard to reproduce this.

But obviously this may happen when changing an already existing model multiple times by removing existing items.

Proposed resolution

Seems to be an upstream issue, but this highly impacts the reliability when configuring ECA workflows.

Remaining tasks

Try to find a reliable way to reproduce this.

User interface changes

API changes

Data model changes

🐛 Bug report
Status

Active

Version

2.1

Component

Upstream

Created by

🇩🇪Germany mxh Offenburg

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @mxh
  • 🇩🇪Germany mxh Offenburg
  • 🇩🇪Germany jurgenhaas Gottmadingen

    Yeah, that really can only be an upstream issue as saving a model from within the bpmn_io UI is always calling \Drupal\eca\Entity\Eca::resetComponents which empties the lists of events, conditions, actions and gateways. Afterwards, it goes through the XML from bpmn_io and adds components back to those lists one by one. So, if can only end up in the processable ECA config entity if it was in the XML before.

    Could you please report that upstream and provide the link here for reference?

    I'm marking this as task as it needs an upstream bugfix, and I postpone it until we get more feedback from upstream.

    However, here is a way to resolve this for when you recognize the issue for a given model: you can delete the eca.model.ID config entity and then open the model again. It will then be converted back from the ECA entity into a fresh bpmn_io model. What you will lose by that is the layout of the canvas and labels for conditions or annotations will be lost too. But at least the model should be repaired otherwise, i.e. the previously hidden action will then be visible again and can be deleted.

  • 🇩🇪Germany jurgenhaas Gottmadingen

    Note: the workaround mentioned in #3 is only available in the latest release of both ECA and bpmn_io.

Production build 0.71.5 2024