Resuming suspended workflows instantiated under a prior version of Elsa #7758
Replies: 2 comments 1 reply
|
Short answer: there doesn't appear to be a built-in migration path for suspended workflow instances across Elsa versions when the persisted workflow state or bookmark shape changed. In the current code, resume happens against the persisted workflow instance state and the stored bookmark IDs, not by rebuilding state from the latest workflow definition:
Relevant source:
There are some targeted backward-compatibility hooks, but they are selective rather than a general suspended-instance upgrader:
Relevant source:
So if your 3.2 suspended instances still deserialize cleanly under 3.7, and the referenced definition versions are still available, they may resume. But if you already see breaking changes in Operationally, the safest path is:
Related discussions:
If you can share the exact fields that changed for your provider (e.g. MongoDB document shape, bookmark payload/type names, or deserialization errors), that would make it possible to be more specific about what needs to be migrated. |
|
Short answer: yes, those four items all fit the current codebase and I still don't see a built-in migration path for suspended instances across versions when the persisted workflow state or bookmark payload shape changed. A few concrete points from the current code and from 3.2-era code:
Relevant source:
Related:
So the practical conclusion is still: if you need suspended 3.2 instances to survive into 3.7, plan a custom migration for the persisted If it helps, the next useful step would be to export one broken workflow instance document plus its related bookmarks and compare them against a freshly suspended 3.7 instance of the same workflow. That should make the exact migration delta pretty obvious. |
Uh oh!
There was an error while loading. Please reload this page.
When upgrading Elsa... for example from 3.2 to the 3.7, how should we be handling suspended workflows created under 3.2? There are some internal changes to the way state is stored that make them not resumable by default, or without manipulating the data stored for the
BookmarkandWorkflowInstance.All reactions