Open cbrewster opened 3 days ago
Thanks for the detailed report! The activity completion definitely should be delivered before update on replay if it was originally. We will likely treat this as a high priority (granted updates are not yet GA for these kinds of reasons).
What are you really trying to do?
I have a workflow which runs various activities depending on signals/updates from the user. The workflow keeps track of the current state (running, stopped) using a counter to keep track of how many activities are currently running. There is a resume update which we only want to start an activity if there isn't already an activity running.
I've implemented this but during replays we are seeing non-determinism errors. I've made a minimal reproduction of this.
Describe the bug
We're seeing workflow replays that cause events to be processed in a different order than how the events originally came in:
Original order of events:
During replay we get a different order which causes the NDE:
Minimal Reproduction
This reproduction runs the workflow and then automatically replays the workflow to demonstrate the nondeterminism error.
Environment/Versions
Additional Comments
Replacing the update with a signal instead does not have the same issue.