---
{
  "id": "platform.cron.fire-events-and-debugging",
  "topic": "cron",
  "title": "Cron fire events and debugging",
  "locale": "en",
  "version": "2026-09-06",
  "summary": "Debug Cron by separating schedule state, dispatch state, and per-fire execution results rather than treating creation as execution success.",
  "content": "`get_job` returns 20 recent fire events. `list_fires` provides keyset pages, status filtering, and `workflowRunId`/`messageId` links. Creation proves only that a schedule was accepted. Result statuses are exactly `success`, `partial`, `failed`, `skipped`, `timeout`, and `unknown`; sources are `agent`, `runtime_fallback`, or `system`.\n\nDebug status, `nextFireAt`, fire, delivery, result, and source in order. Reasons distinguish quota, permission, unavailable/offline target, timeout, exhausted schedule, and invalid input. Never infer success from silence.\n\nManual events have `manual: true`; `run_now` changes neither schedule, `runCount`, nor skip counters. Retry the same idempotency key for the same event. Skips persist first; replay heals the durable failure notification without duplicate feed/push. `record_run_result` is runtime bookkeeping, not a general command.\n\nScheduler/outbox intervals are 30/5 seconds. Outbox locks expire after 75 minutes; firing recovery rechecks a 5-minute stale heartbeat. Missing Agent results time out after 300 seconds, excluding system targets; fallback is unknown, not success, and does not duplicate timeout notifications. System deliveries stay pending until settled; actions use their registered timeout and renew the heartbeat. Idempotency lasts 24 hours; completed jobs, 90 days. Missed occurrences fire once then advance; configurable missed-run/overlap policy is unavailable. Delivered `workflow_run` means accepted: follow its linked run, not a Cron success callback/timeout. Skips/failures still notify. Plaintext messages must not enter knowledge or routing telemetry.\n",
  "aliases": [
    "cron fire event",
    "schedule failed",
    "missed run",
    "skipped execution",
    "timeout result",
    "recent fires"
  ],
  "tags": [
    "cron",
    "debugging",
    "fire-event"
  ],
  "relatedActions": [
    "arinova.cron.get_job",
    "arinova.cron.list_fires",
    "arinova.cron.run_now",
    "arinova.cron.record_run_result"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/cron/fire-events-and-debugging/"
}
---

`get_job` returns 20 recent fire events. `list_fires` provides keyset pages, status filtering, and `workflowRunId`/`messageId` links. Creation proves only that a schedule was accepted. Result statuses are exactly `success`, `partial`, `failed`, `skipped`, `timeout`, and `unknown`; sources are `agent`, `runtime_fallback`, or `system`.

Debug status, `nextFireAt`, fire, delivery, result, and source in order. Reasons distinguish quota, permission, unavailable/offline target, timeout, exhausted schedule, and invalid input. Never infer success from silence.

Manual events have `manual: true`; `run_now` changes neither schedule, `runCount`, nor skip counters. Retry the same idempotency key for the same event. Skips persist first; replay heals the durable failure notification without duplicate feed/push. `record_run_result` is runtime bookkeeping, not a general command.

Scheduler/outbox intervals are 30/5 seconds. Outbox locks expire after 75 minutes; firing recovery rechecks a 5-minute stale heartbeat. Missing Agent results time out after 300 seconds, excluding system targets; fallback is unknown, not success, and does not duplicate timeout notifications. System deliveries stay pending until settled; actions use their registered timeout and renew the heartbeat. Idempotency lasts 24 hours; completed jobs, 90 days. Missed occurrences fire once then advance; configurable missed-run/overlap policy is unavailable. Delivered `workflow_run` means accepted: follow its linked run, not a Cron success callback/timeout. Skips/failures still notify. Plaintext messages must not enter knowledge or routing telemetry.
