Skip to main content
Build and run

Run History

Every execution of an automation is recorded as a run. The run history page lists an automation's most recent runs so you can see at a glance what ran, when, with what outcome, and what it cost.

Written By Christopher Scaminaci

Last updated 2 days ago

Every execution of an automation is recorded as a run. The run history page lists an automation's most recent runs so you can see at a glance what ran, when, with what outcome, and what it cost.

Open it with the Run history button on the automation detail page, or navigate to /automations/<automation-id>/runs.

The toolbar

Above the table, an at-a-glance stats row summarizes the runs currently in view — the numbers update as you filter:

StatMeaning
RunsHow many runs match the current filters.
CompletedRuns that finished, including runs marked Completed with violations.
FailedRuns with any non-clean outcome (failed, timed out, out of credits, or interrupted).
In progressRuns still queued, running, or awaiting input.
CreditsTotal credits consumed across the matching runs.
Avg durationAverage duration of the matching runs that actually ran.

A filter row sits below the stats:

  • Search — matches on run id, displayed status, summary, error text, or Anthropic session id.
  • Status — All statuses, In progress, Completed, or Failed. These roll up the detailed statuses below: "In progress" covers Queued, Starting, Running, and Awaiting input; "Completed" includes Completed with violations; and "Failed" covers Failed, Timed out, Out of credits, and Interrupted.
  • Trigger — All triggers, On demand, Scheduled, or Webhook.
  • Time window — Any time, Last 24 hours, Last 7 days, or Last 30 days.
  • Export CSV — downloads the currently-filtered runs as a CSV file.

The list also refreshes on its own every few seconds while any run is still in flight, and a Refresh button in the header re-loads it on demand.

The run table

The page fetches up to the 200 most recent runs and shows 50 at a time; a Show more button reveals the next 50. When the 200-run cap is reached, the footer count reads "200+ (most recent)". Rows are newest first.

ColumnMeaning
StatusThe run's current or final state, as a colored badge (see below).
StartedWhen the run started (or when it was created, if it never started). Hover for the exact time.
DurationHow long the run took — the metered active time when available, otherwise the wall-clock span from start to finish.
TriggerWhat launched it — On demand, Scheduled, or Webhook.
ToolsHow many tool calls the run made.
TokensA compact in · out · cached summary — for example, "13 in · 11.0k out · 5.6M cached". Cached combines cache reads and cache writes; on a typical agent run it is the largest class by far and the main driver of the Credits figure beside it. The segment is left out only when cache traffic is genuinely zero. Hover for the four exact numbers.
CreditsCredits consumed by the run.
SummaryThe agent's summary, or — for a failed run — the error message.

Click anywhere on a row (or focus it and press Enter/Space) to open its run detail page. There is no separate "View" column.

Owners and administrators also see a box beside each finished run and a Delete transcripts button, to delete the transcripts of the selected runs at once. See Deleting run transcripts.

Run statuses

The status badge shows both the state and, by its color, the outcome:

StatusTerminal?Meaning
QueuedNoThe request is in the durable queue and has not yet claimed an execution slot. It may be waiting behind another run of the same automation, the shared execution pool, or your organization's own concurrency limit (the slots your Agent Runner plan includes, or the platform allowance if you have no such plan — see Concurrency, Slots, and the Run Queue). It has no AI session and no credit reservation yet; open it to cancel while it waits.
StartingNoThe run claimed a slot and is completing credit reservation, pre-run steps, and AI-session startup.
RunningNoThe run is in progress — open it to watch the live stream or interrupt it.
Awaiting inputNoThe run is paused for a human decision on a captured tool call. This is a supervised dry-run test; production runs do not pause for approval. Open it before its 60-minute deadline to approve or deny — and note that approving can be refused when your organization is at its concurrency ceiling, which leaves the run paused with the clock still running (see Run Detail).
CompletedYesThe run finished successfully.
Completed with violationsYesThe run completed, but at least one tool required by a Required or Ordered chain was not called. Open the run to inspect the persisted chain warning and durable tool sequence.
FailedYesThe run ended with an error — open the run to read the error message.
Timed outYesThe run exceeded the automation's Max runtime and was terminated.
Out of creditsYesEither your balance was too low to start the run (in which case nothing was charged), or the run hit its Max credits per run cap mid-run and was wrapped up.
InterruptedYesSomeone cancelled the run while it was waiting for a slot, or stopped it after execution began. A queued cancellation never started and used no credits.
SkippedYesThe run ended before execution—most commonly because a durably queued run expired or became unrunnable, though one-at-a-time trigger deferral can also produce this outcome. It had no AI session or credit reservation, so nothing was charged. The reason is in its summary. It appears only under All statuses because it is neither completed, failed, nor in progress.

Failed, Timed out, Out of credits, and Interrupted render with a red badge; Completed is green; Queued, Starting, and Running are blue; Completed with violations, Awaiting input, and Skipped are amber.

Investigating an unexpected outcome

Start with the row's status, summary, trigger, time, and credits, then open the run for durable evidence:

  1. Read the error or warning banner and copy its SJ-... support code.
  2. Check the Tool sequence for what actually ran and whether required tools, ordered chains, or post-step checks produced warnings.
  3. For a run that reached Anthropic, fetch the transcript on demand. A transcript is supporting evidence, not StackJack's durable record; tool sequence rows, status, usage, and warnings remain available even if Anthropic can no longer return it.
  4. Check the trigger payload before retrying. Re-run with this payload starts a brand-new manual run with a new credit reservation; it never rewrites the old run.

For service interruptions, StackJack can give the first stranded tenant run one fresh execution attempt under the same run id. For StackJack-managed credits, that attempt reuses the original reservation instead of placing a second hold. BYOK runs have no StackJack reservation; the stranded attempt and its replacement may both incur usage charged directly by Anthropic.

Before starting the replacement, StackJack must confirm that the old Anthropic session is stopped. If that stop cannot be confirmed, the run stays parked in its current state and cleanup retries later; uncertainty alone does not change the run to Failed. If an accepted recovery attempt later strands again, or the automation is no longer runnable, the run ends as Failed and settles its StackJack-managed reservation. Staff diagnostic runs are never replayed automatically.

A recovered execution starts fresh. It can therefore repeat connector-side effects that the old session completed before StackJack lost contact. Use vendor-supported idempotency keys or another deduplication control for operations that must happen only once, and inspect the connected system before starting a separate manual re-run. Include the run id, status, support code, timestamps, and restart note when escalating to support.

Empty and error states

  • "No runs yet." — the automation has never run. The hint below adapts to the trigger: a scheduled or webhook automation is told its runs will appear once the schedule fires or the webhook is called.
  • "No runs match the current filters." — with a Clear filters button — when a filter or search hides every run.
  • Load failures show a typed alert with a Retry button: SJ-AGENT-FORBIDDEN, SJ-AGENT-NOT-FOUND, SJ-AGENT-UNAVAILABLE, or SJ-AGENT-SERVER-ERROR.