# Runs Lifecycle

Source: https://userguide.qualytics.io/operations/runs/deep-dive/lifecycle/

Every Run progresses through a small set of states, from the moment it is queued until it reaches a terminal outcome. This page covers the state diagram, how Promote differs from the other operations, how per-container progress relates to the Run-level state, and where logs live.

## State diagram

Every Run follows the same general lifecycle: an active phase (`Queued`, `Running`) followed by a terminal outcome (`Success`, `Failure`, or `Aborted`). **Promote** is the exception. It transitions directly to `Running`, skipping `Queued`.

**Tab: Standard operations**

Applies to Sync, Profile, Scan, External Scan, Export, and Materialize.

```mermaid
flowchart LR
    Queued -->|processing starts| Running
    Queued -.->|user clicks Abort| Aborted
    Running -->|all containers processed| Success
    Running -.->|unrecoverable error| Failure
    Running -.->|user clicks Abort| Aborted
```

**Tab: Promote**

Promote skips `Queued` and starts directly in `Running`.

```mermaid
flowchart LR
    Running -->|all entities processed| Success
    Running -.->|unrecoverable error| Failure
    Running -.->|user clicks Abort| Aborted
```

Solid arrows: automatic transitions. Dotted arrows: user-initiated or error.

> **Note: Warning indicator**
>
> The Warning indicator is not a distinct status. A Run that ends in **Success** may show a  icon next to its ID when the Run recorded log entries during execution. The underlying status remains Success, and the Run is treated as a terminal Success everywhere downstream. See the [Run States](https://userguide.qualytics.io/operations/runs/deep-dive/states/) table.

A Run can be re-launched with **Resume** or **Rerun** (see [Available Actions](https://userguide.qualytics.io/operations/runs/deep-dive/actions/)). **Rerun** creates a brand-new Run with the same settings. **Resume** reopens the original Run, which goes back to Queued and then Running (a Promote goes straight to Running) and ends with a new outcome that replaces the earlier **Aborted** or **Failure**.

## Per-container progress vs Run-level state

Some operations (notably **Profile** and **Scan**) track progress at two layers:

1. **Run-level state.** The badge on the Activity row and the terminal outcome for the whole operation.
2. **Container-level state.** The per-container result inside the expanded Run, with its own Success/Failure badge.

Each layer has its own badge. When a container lands on **Failure**, the Run finishes on **Failure** as well, and the failed container is recorded on the [Run Results](https://userguide.qualytics.io/operations/runs/deep-dive/results/) tab. The container-level badge uses the same component and palette as the Run-level badge.

For **Sync**, **External Scan**, **Export**, **Materialize**, and **Promote**, all the work folds into a single Run-level state. There is no separate per-container badge.

## Where logs live

Two log scopes are exposed for every Run:

- **Run-level log.** Surfaced in the expanded Run's **Logs** block and on the operation's [detail page](https://userguide.qualytics.io/operations/runs/deep-dive/details/). Captures setup, scheduling, platform events, and any unrecoverable error.
- **Container-level log.** Surfaced alongside each container row inside the expanded Run, when the operation has a per-container progress layer (Profile, Scan). Captures the per-container query and any error that prevented the container from finishing.

While a Run is active, logs surface per container as each one finishes. The Run-level log arrives with the final result and does not change afterwards.

## See also

- **How It Works**

  What a Run is for, what does not appear as a Run, and the contexts of the Activity tab.

  [How It Works](https://userguide.qualytics.io/operations/runs/deep-dive/how-it-works/)
- **Details**

  The Overview tab of the detail page, with the Run's key details, settings, summary metrics, logs, and timeline.

  [Details](https://userguide.qualytics.io/operations/runs/deep-dive/details/)
- **Results**

  The Results tab of the detail page, with the per-container breakdown of a Scan, Profile, or Promote, and where a Sync, Export, or Materialize wrote its results.

  [Results](https://userguide.qualytics.io/operations/runs/deep-dive/results/)
- **Anatomy**

  The components every Run exposes, from the status badge to the progress bar with its phase messages.

  [Anatomy](https://userguide.qualytics.io/operations/runs/deep-dive/anatomy/)
- **Quick Stats Icons**

  The icon cluster on the right of the Run row, broken down per operation type.

  [Quick Stats Icons](https://userguide.qualytics.io/operations/runs/deep-dive/quick-stats-icons/)
- **States**

  The five canonical states plus the Warning indicator, and what each one means.

  [States](https://userguide.qualytics.io/operations/runs/deep-dive/states/)
- **Available Actions**

  Abort, Resume, Rerun, and Delete: when each one is shown, what it does, and which operation types support it.

  [Available Actions](https://userguide.qualytics.io/operations/runs/deep-dive/actions/)
- **Permissions**

  The user roles and team permissions behind viewing Runs and acting on them.

  [Permissions](https://userguide.qualytics.io/operations/runs/deep-dive/permissions/)

*Last updated: October 9, 2026.*
