Establish what is happening
Mark the deadline timeline
Record job start, deadline calculation, phase transitions, limit signal, cleanup start and end, commit events, worker exit, and terminal state. Include any retry decision. Keep the clock source and timezone visible so a timestamp conversion issue is not mislabeled as a time-limit defect.
Separate work from cleanup
List the side effects completed before the limit, the step interrupted at the boundary, and the cleanup actions that followed. Check whether cleanup can safely repeat and whether the job reports timed out, failed, or still running. Preserve unknown effects as unresolved evidence.
Compare boundary cases
Inspect runs that finish just before the deadline, reach it during a short step, and exceed it while waiting on a dependency. Identify the first difference in signal or terminal mapping. A limit that fires consistently but leaves the same committed state may need wording rather than execution change.
What to carry forward
Return the deadline calculation, phase, side effects, cleanup timeline, worker exit, and terminal mapping for matched boundary cases. Classify the scope as deadline calculation, phase allowance, cleanup, or retry ambiguity. Keep causation provisional when commit and timeout records lack a shared order.
Technical background: Celery documentation.
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