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. I would prefer if we went down this route if possible, but this will require more work than the second solution. If this seems too annoying then we should go for the second solution as it is easy to do.

  • 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

Sprint

None

Priority

Low

Engineering Teams

Kernel

Fix versions

None

Affects versions

Ported to...

None

Story Points / Dev Days

2

Build cut

None
Configure