github durable-workflow/workflow 2.2.9
Workflow 2.2.9

3 hours ago

Workflow 2.2.9

This patch prevents a schedule tick from acting on a due occurrence that became stale before it acquired the schedule row lock. The tick now rechecks the captured occurrence against the locked schedule's current next_fire_at at UTC microsecond precision. An obsolete occurrence returns skipped with reason stale_occurrence, without advancing the schedule, applying an overlap policy, buffering, cancelling, terminating, or starting another workflow. Manual triggers and explicit backfill keep their existing behavior.

This corrects #551. Regression coverage includes concurrent tick snapshots, a manual trigger between selection and locking, all overlap policies, a completed run using the built-in PHP-class starter, and offset/microsecond comparisons. The exact-head source matrix passed before the patch release.

There is no new migration or worker protocol change in 2.2.9. Applications upgrading from a version before 2.2.8 should still follow the existing UTC schedule timestamp migration guidance from 2.2.8.

Don't miss a new workflow release

NewReleases is sending notifications on new releases.