Establish what is happening
Identify the expected occurrence
Record schedule ID, occurrence ID, due time, recurrence revision, and the expected action. Confirm the occurrence was not intentionally skipped or superseded. Keep local and UTC times visible if the schedule uses a timezone rule.
Trace each transition
Look for due, scheduler tick, enqueue, ready, claim, start, expiration, and terminal records in order. Mark the first missing transition and its time window. Compare the same transitions for a neighboring success to distinguish a missing event from a delayed worker.
Check availability and recovery
Inspect worker availability, queue state, retry policy, and any replay or skip record at the due window. Determine whether the occurrence is still eligible, already superseded, or requires review. Do not replay it until its original side effects are reconciled.
What to carry forward
Return the occurrence timeline, first missing handoff, worker context, recurrence revision, and recovery status. Classify the scope as scheduler tick, enqueue, claim capacity, expiration, or terminal visibility. Keep the cause provisional when the schedule record itself is absent or duplicated.
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