Skip to content

Flowable 8.0.0: transaction cancel events fail at runtime (blocks BPMN rollback) #228

Description

@nathanpond

Split out of #220 so the engine defect is not lost when that story is descoped.

What

A transaction subprocess with a cancel end event inside and a cancel boundary event on the outside — the BPMN rollback idiom — fails at runtime on Flowable 8.0.0. Two different engine-side errors, both from completing the task that reaches the cancel end event:

No execution found for sub process of boundary cancel event 'onCancel'
for Execution[ id '…' ] - definition 'cancel_only:1:…'
### Error updating database. Cause: org.postgresql.util.PSQLException:
ERROR: insert or update on table "act_ru_execution"
violates foreign key constraint "act_fk_exe_parent"
  Detail: Key (parent_id_)=(…) is not present in table "act_ru_execution".

The second is a foreign-key violation inside Flowable's own execution table, which is an engine bug rather than a modelling error.

What is NOT affected

Compensation works. Probed separately with correct element ordering: a compensation boundary event, a handler marked isForCompensation, an association between them, and an intermediate throw (compensation) — completing the guarded task ran the handler and execution continued:

tasks after the throw: ['After compensation', 'Cancel the booking']

So #115 (compensate completed work) is viable on its own; only the cancel pair is broken. Worth stating clearly, because the two are usually described together and it would be easy to withdraw both.

The transaction subprocess container deploys and runs — it is only the cancel semantics that fail.

Why this is filed rather than fixed

The diagram is valid BPMN and the failure is inside the engine's execution-tree bookkeeping. Working around it would mean a publish-time rewrite replacing cancel events with an error-based rollback path, which makes the deployed diagram diverge sharply from what the author drew — and that is a large piece of work to hide an upstream defect.

Owner's call was to descope #220, withdraw the affected manifest rows, and keep this issue so the defect is not forgotten.

Worth checking when this is picked up

  • Whether a later Flowable release fixes it (this is 8.0.0).
  • Whether a different diagram shape avoids it — the two errors suggest the boundary cannot resolve the transaction's execution, which may be sensitive to nesting.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:flowableflowable-extension/bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions