Aglet

Document missed-window signals and scheduled-run recovery

The durable lesson is that every due occurrence needs an observable path and an explicit response when one handoff is absent. Record how to distinguish delayed claim from missing enqueue, how occurrence identity is retained, and when replay or skip is safe. Keep those rules near schedule operations and recovery tooling.

Keep the lesson for the next incident

  1. Name every handoff

    Document due, scheduler tick, enqueue, ready, claim, start, expiration, and terminal records, including their owner and identity. State which missing transition raises review and how local versus UTC due times are represented.

  2. Retain window fixtures

    Keep available-worker, delayed-worker, missed-enqueue, and replay-or-skip cases with expected occurrence identities and outcomes. Re-run them after changing scheduler polling, queue adapters, worker capacity, expiration, or recurrence rules. Store the first absent handoff and recovery choice with the fixture for operator review.

  3. Watch for recurrence

    Review due occurrences with no enqueue, ready runs whose claim age exceeds policy, and recovery IDs that lack an original readback. Compare neighboring success and worker state before replaying. Assign an owner when a new scheduler path lacks a missing-window signal.

What to carry forward

Preserve a complete due-to-terminal handoff, occurrence identity, and replay decision contract with available and delayed fixtures. Recurrence checks should surface the first missing transition. Reopen review when scheduler, queue, worker capacity, expiration, or recovery changes how a due occurrence can disappear.

Technical background: Rails guides.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow