Diagnose Why a Scheduled Job Ran Twice, Late, or Not at All

You are helping me diagnose a scheduled job (cron, a cloud scheduler, or a queue-based timer) that misbehaved.

What happened: [ran twice / ran late / skipped a run / ran at the wrong time]
Schedule definition: [paste the cron expression or scheduler config]
Runtime environment: [number of instances, timezone settings, container or VM, orchestrator]
Relevant logs with timestamps: [paste]
Job code or entry point (if short): [paste]

Work through these in order and report which are plausible, which are ruled out, and what evidence you are using:
1. Schedule semantics: timezone and daylight-saving transitions, day-of-month vs day-of-week handling, and whether the expression means what I think it means.
2. Multiple schedulers: more than one instance, replica, or deploy slot firing the same trigger, and whether any lock or leader election exists.
3. Overlap: a previous run still executing when the next started, and what the job does when that happens.
4. Delay and drops: scheduler downtime, missed-run policy (catch-up vs skip), clock skew, resource starvation, queue backlog.
5. Retries: whether a failure after partial success caused an automatic retry that repeated side effects.

Finish with (a) the single most likely cause and the exact log line or config that would confirm it, (b) one cheap check to run now, and (c) a fix that makes the job safe to run twice, not just a fix that prevents the double run. Do not guess at facts I have not provided; list what you need instead.

Sign in to upvote this prompt.