There was a lack of distributed lock during the batch creation phase. If an antecedent batch succeeded just after adding a batch continuation (continuations:finished set), but before the continuation was created, antecedent batch was silently ignoring the fact that continuation does not exist yet. I’ve added a required distributed lock, and taught a state filter related to continuations to throw an exception, when continuation doesn’t exist.
Hangfire.Pro
- Fixed – Throw an exception, when can’t change the state of a continuation.
- Fixed – Fix race condition that leads to forever waiting batch continuations.