---
title: "Run lifecycle"
description: "Every state a run passes through, including stopping and looks stuck, why runs are cancelled, and how Stop, Resume and Delete work."
url: "https://www.jsonify.com/docs/runs/lifecycle"
---

[Documentation](https://www.jsonify.com/docs/) Filter pages

## Getting started

*   [What is Jsonify?](https://www.jsonify.com/docs/)
*   [How pipelines work](https://www.jsonify.com/docs/how-jsonify-works)
*   [Your first pipeline](https://www.jsonify.com/docs/getting-started/first-pipeline)
*   [Workspaces](https://www.jsonify.com/docs/getting-started/workspaces)
*   [Glossary](https://www.jsonify.com/docs/getting-started/glossary)

## Tutorials

*   [Track the Hacker News front page](https://www.jsonify.com/docs/tutorials/hacker-news)
*   [Monitor prices across retailers](https://www.jsonify.com/docs/tutorials/price-monitoring)
*   [Get a Slack alert when a price drops](https://www.jsonify.com/docs/tutorials/slack-price-alert)
*   [Use a dataset from your agent](https://www.jsonify.com/docs/tutorials/agent-query)

## Jason

*   [Chatting with Jason](https://www.jsonify.com/docs/jason/chat)
*   [Changing a pipeline](https://www.jsonify.com/docs/jason/changing-a-pipeline)
*   [Agents, workers and repairs](https://www.jsonify.com/docs/data-agents)

## Pipelines

*   [The pipeline page](https://www.jsonify.com/docs/pipelines/overview)
*   [Statement of work and steps](https://www.jsonify.com/docs/pipelines/statement-of-work)
*   [Inputs and parameters](https://www.jsonify.com/docs/pipelines/inputs)
*   [Settings reference](https://www.jsonify.com/docs/pipelines/settings)
*   [Versions and changelog](https://www.jsonify.com/docs/pipelines/versions)

## Runs

*   [Running a pipeline](https://www.jsonify.com/docs/runs/running)
*   [Scheduling](https://www.jsonify.com/docs/runs/scheduling)
*   [Run detail](https://www.jsonify.com/docs/runs/run-detail)
*   [Run lifecycle](https://www.jsonify.com/docs/runs/lifecycle)
*   [Verification and repair](https://www.jsonify.com/docs/runs/verification-and-repair)

## Datasets

*   [Dataset pages](https://www.jsonify.com/docs/datasets/overview)
*   [Versions](https://www.jsonify.com/docs/datasets/versions)
*   [Query and export](https://www.jsonify.com/docs/datasets/query-and-export)
*   [Row detail and provenance](https://www.jsonify.com/docs/datasets/provenance)
*   [Sharing](https://www.jsonify.com/docs/datasets/sharing)

## Analytics

*   [Dashboards](https://www.jsonify.com/docs/analytics/dashboards)
*   [Newsletters](https://www.jsonify.com/docs/analytics/newsletters)

## Alerts

*   [Alert rules](https://www.jsonify.com/docs/alerts/rules)
*   [Alert history and notifications](https://www.jsonify.com/docs/alerts/history)

## Integrations

*   [Integrations overview](https://www.jsonify.com/docs/integrations/overview)
*   [Slack and email](https://www.jsonify.com/docs/integrations/slack-and-email)
*   [Sheets, warehouses and webhooks](https://www.jsonify.com/docs/integrations/destinations)
*   [Ingest and serve API](https://www.jsonify.com/docs/integrations/api)
*   [Connect your agent (MCP)](https://www.jsonify.com/docs/integrations/mcp)
*   [Command line](https://www.jsonify.com/docs/integrations/cli)

## Workspace and account

*   [Workspace settings](https://www.jsonify.com/docs/workspace/settings)
*   [Team](https://www.jsonify.com/docs/workspace/team)
*   [Billing and usage](https://www.jsonify.com/docs/workspace/billing)
*   [Data retention](https://www.jsonify.com/docs/workspace/data-retention)

## Plans

*   [Radar or Benchmark? Enterprise](https://www.jsonify.com/docs/radar-vs-benchmark)
*   [Row pricing and managed service](https://www.jsonify.com/docs/pricing-model)

## More

*   [Connect your agent](https://www.jsonify.com/connect)
*   [Pricing](https://www.jsonify.com/pricing)
*   [Contact support](https://www.jsonify.com/contact)

[Docs](https://www.jsonify.com/docs/)/Runs

# Run lifecycle

Every state a run passes through, including stopping and looks stuck, why runs are cancelled, and how Stop, Resume and Delete work.

A run moves through a small number of states, and each one shows up the same way everywhere: on the run head, in the runs rail, on cards and on the Latest runs page. Knowing the states makes the rest of the product easy to read.

A run is queued, then running. It ends completed, failed, or, after a stop request passes through stopping, cancelled. Failed and cancelled runs can be resumed from their last checkpoint, which starts a new run on the same version.

Run states. A run is queued, then running. It ends completed, failed, or, after a stop request passes through stopping, cancelled. A failed or cancelled run that completed at least one stage can be resumed as a new run.

## States

| State | Pill | What is happening |
| --- | --- | --- |
| Queued | Queued (orange head) | The run exists and is waiting for a worker. Waiting for an available runner. This run will start automatically. |
| Running | Running / Running — <step> (brand head, pulsing) | Workers are executing the steps. The head names the current step when known. |
| Stopping | Stopping… (slate head) | A stop was requested. Winding down — the run is being stopped and will finish shortly. In-flight fetches finish or are abandoned, then the run becomes cancelled. |
| Completed | Completed (green head) | Every step finished and the checks passed. A live run has published; a test or debug run has kept its rows privately. |
| Failed | Failed (red head) | A step raised an error, or the end-of-run checks turned the run into a failure (for example no rows). The error is in the red banner on Logs. |
| Cancelled | Cancelled (slate head) | The run stopped before finishing. The detail line says why. |

**Active** means queued, running or stopping. Only active runs can be stopped; only settled runs (completed, failed, cancelled) can be deleted.

### Looks stuck

An active run that has recorded no activity for 30 minutes is flagged **Looks stuck** with an amber head: **No activity for 34 minutes during extract\_offers. You can stop the run, or ask Jason to investigate.** The run is not cancelled; it may be waiting on a slow source. **Ask Jason** replaces **Fix with Jason** in the actions, and **Stop** is available. If a run is genuinely lost, the platform’s own watchdog cancels it and the detail line records it.

## Why a run is cancelled

The detail line under a **Cancelled** pill names the cause; the run’s Summary repeats it in its sentence.

| Detail line | Cause |
| --- | --- |
| Stopped by Maya Okafor | A person pressed Stop on the run page or on Latest runs. |
| Stopped by a user. | Stopped by a person whose name is not recorded. |
| The worker processing this run was lost. | The worker executing the run went away (for example during maintenance) before it could hand the run over. |
| Stopped by the stall watchdog. | The platform cancelled a run that stopped reporting activity. |
| Stopped after hitting its time limit. | The run exceeded the maximum duration allowed for a single run. |
| Stopped externally. | Stopped by something other than the above. |

A reason may follow the line after a dash when one was given.

> A cancelled live run does not publish. Its partial rows stay on its **Outputs** tab, marked **not published**, and the dataset keeps its last published revision.

## Stop

1.  **Open the run** (or find its card under active runs on Latest runs).
2.  **Press Stop.** The pill becomes **Stopping…**; the button stays visible but disabled with the tooltip **Stopping…** until the workers confirm.
3.  **Read the result.** The run becomes **Cancelled** with **Stopped by** your name. Anyone who asked to be notified when the run finishes is notified now, and any alert rule on run status fires.

Stopping does not affect the schedule: the next slot fires as usual. Stopping does not roll anything back either; the dataset is untouched because nothing was published.

## Resuming

A failed or cancelled run whose workers had completed at least one stage offers **Resume** in the head. Resuming reuses the rows that stage produced and reruns everything after it, as a **new** run.

1.  **Press Resume** on the failed or cancelled run. The dialog **Resume run?** reads **Jsonify will reuse 1,240 rows from fetch\_catalogue and rerun every downstream stage.**, lists **Reused boundary fetch\_catalogue** and **Pipeline version v2**, and notes **This creates a new run. The failed run stays unchanged.**
2.  **Start resumed run.** A new run appears in the rail as a **Resumed run**, numbered like any live run. Its Summary shows **Recovery · Reused stage fetch\_catalogue from run #7**.
3.  **Let it finish.** The resumed run publishes when its checks pass, exactly like a live run.

The resumed run uses the pipeline version recorded on the dialog. When a repair has activated a newer version in the meantime, that newer version is what runs after the reused stage, which is how a repaired pipeline finishes the work a failed run started without re-fetching what already succeeded.

> A run failed at the third of five steps after fetching 2,400 product pages. Resume reuses those 2,400 pages’ rows and reruns the last three steps in a few minutes instead of an hour.

Runs with no completed stage do not offer **Resume**; start a new run instead.

## Delete

**Delete run** sits in the menu beside the last action on a settled run’s head (or as **Actions** on a failed run). It removes the run, its logs, its fetched pages and its output rows. Datasets the run published keep their revisions. There is no confirmation on the run page; you land on the neighbouring run afterwards, or on the **Runs** tab if none is left.

To delete several at once, use the checkboxes on [Latest runs](https://www.jsonify.com/docs/runs/running#deleting-runs), which does confirm: **Delete 4 runs? This permanently removes the runs and their logs. Datasets they produced are not affected.**

> Deleting a run removes the provenance behind the rows it published. The rows stay in the dataset, but **Origin** on a row can no longer show the fetch and screenshot that produced it. Keep runs whose rows you may need to audit.

## Where states show up

| Surface | How a state appears |
| --- | --- |
| Run head | Pill, background tint, detail line. |
| Runs rail | Status icon on each row; live rows tick their elapsed time; active runs sit under Active. |
| Pipeline card and Home | Queued / Running / Stopping (blue), Finished successfully (emerald), Needs attention (red for a failure), Last run cancelled (amber). |
| Pipeline hero | Running pill while a run from this page is in flight; last ran in red after a failure. |
| Latest runs | Status filter; cards for active runs with Stop; status text on previous runs. |
| Home › Needs attention | A pipeline whose latest run failed, with Failure 2 hours ago · Last run failed. |

## What’s next

[**Run detail**

Every tab of the run page.

](https://www.jsonify.com/docs/runs/run-detail)[**Verification and repair**

Why a run fails its checks, and how repairs land.

](https://www.jsonify.com/docs/runs/verification-and-repair)[**Alert history and notifications**

Be told when a run fails or is stopped.

](https://www.jsonify.com/docs/alerts/history)

[PreviousRun detail](https://www.jsonify.com/docs/runs/run-detail) [NextVerification and repair](https://www.jsonify.com/docs/runs/verification-and-repair)

Something missing or wrong? [Tell us](https://www.jsonify.com/contact).[Build it →](https://factory.jsonify.com/setup)

## On this page
