Verify `call` function of a flow is suspendable at node startup / flow start time

Description

A flow can successfully start even if its `call` function is not annotated with `@Suspendable`. From a user point of view, they have not triggered a suspending call and therefore do not need the annotation. But, because of the flow hospital, the flow can be replayed at a later point if an error occurs. When this happens a call to `verifyFlowLogicIsSuspendable` is made. This call fails.

The issue with this is that the flow could be working during development but fail in production due to unexpected errors causing the flow to replay.

To fix this, there are 2 options:

  • Verify that `call` is annotated with `@Suspendable` on new flow start.

  • Verify that every flow's `call` is annotated on node startup. The call could then be removed at flow start time as it will only need to run once during node registration.

Assignee

Unassigned

Reporter

Dan Newton

Labels

None

Feature Team

Kernel Group

Story Points

None

Fix versions

Ported to...

None

Priority

Low

Affects versions

Configure