Core concepts
Executions & Runs
Executions & Runs
Run history, statuses, and error details per dispatch.
Every time Underlayer attempts to dispatch a task or cron job occurrence, it creates an execution run. Runs are immutable records with a full audit trail of what was sent, when, and what came back.
Run statuses
pending: waiting forexecute_at.processing: claimed by the worker; HTTP dispatch in progress.retrying: dispatch failed but retries remain; waiting fornext_retry_at.success: terminal; last dispatch returned a 2xx status.dead: terminal; retries exhausted without a 2xx (dead-letter queue).cancelled: terminal; cancelled by the system (e.g. execution/storage limits).
Viewing runs in the dashboard
Open Activity to see all runs across your workspace. You can filter by:
- Status (
pending,processing,retrying,success,dead,cancelled) - Task or cron job name
- Date range
- HTTP method
Run detail
Clicking a run shows the full detail:
- Request: URL, method, headers, payload sent.
- Response: HTTP status code, response body, duration.
- Timing: scheduled at, dispatched at, completed at.
- Retry info: attempt number and total attempts for this task.
Fetching runs via API
GET /api/v1/scheduler/runs?status=dead&page=1&page_size=50
The response includes a total count for pagination and an array of run objects with the same fields visible in the dashboard.
