Executions
Understand how TrigRun runs your jobs, handles retries, and stores execution results.
An execution is one logical run of a job. Each execution tracks the scheduled time, delivery attempts, and final outcome.
Execution lifecycle
Execution statuses
| Status | Meaning |
|---|---|
queued | Waiting to be picked up |
running | HTTP request in flight |
succeeded | Target returned a success status code |
failed | All attempts exhausted without success |
Retry behavior
When an attempt fails, TrigRun retries based on the job's retry policy:
- Backoff:
250ms * 2^attempt(exponential with jitter) - Default max_attempts: 3 (including the first attempt)
- Default retry_on_statuses:
429, 500, 502, 503, 504 - Timeouts and connection errors always trigger a retry
You configure retry behavior per job:
Attempts
Each attempt within an execution records:
| Field | Description |
|---|---|
number | Attempt number (1, 2, 3...) |
status | SUCCESS, TIMEOUT, CONNECTION_ERROR, HTTP_ERROR |
statusCode | HTTP status code (if the request completed) |
latencyMs | Round-trip time in milliseconds |
bodyPreview | Truncated response body (up to 64 KB) |
responseHeaders | Selected response headers |
errorClass | Error category for failed attempts |
Outbound headers
TrigRun adds headers to every outbound request for tracing and idempotency:
| Header | Value |
|---|---|
X-Cron-Service-Job-Id | The job ID |
X-Cron-Service-Execution-Id | The execution ID |
X-Cron-Service-Scheduled-For | ISO 8601 timestamp of the scheduled run time |
X-Cron-Service-Attempt | Attempt number (1, 2, 3...) |
Use these to deduplicate requests on your end or correlate logs.
Viewing executions
All executions in the workspace:
Executions for a specific job:
Filter and paginate:
Query parameters:
| Parameter | Type | Description |
|---|---|---|
status | string | Filter: queued, running, succeeded, failed |
from | datetime | Start of time range (ISO 8601) |
to | datetime | End of time range (ISO 8601) |
job_name | string | Search by job name (case-insensitive, partial match) |
sort | string | Sort by: scheduled_for or created_at |
order | string | asc or desc (default: desc) |
limit | integer | Max results, 1–100 (default: 50) |
offset | integer | Skip N results for pagination |
Execution details
Get a single execution with all attempts:
Replaying an execution
Re-run a failed (or any) execution:
This creates a new execution with source: "replay", scheduled for now. The original execution is unchanged.
Execution sources
| Source | Meaning |
|---|---|
schedule | Triggered by the job's schedule |
manual | Triggered by "run now" |
replay | Triggered by replaying a previous execution |