---
title: Series Lifecycle States
description: "Every series is in exactly one of six states. Queue shows it, the entry card shows it, and it determines which buttons you get. --- ## The Six States | State | Meaning | Runs automatically? | | --- |…"
url: "https://brightleafdigital.io/docs/series-lifecycle-states/"
updated: "2026-10-18"
category: "Recurring Form Submissions for Gravity Forms / Explanations & Concepts"
---

# Series Lifecycle States

Every series is in exactly one of six states. Queue shows it, the entry card shows it, and it determines which buttons you get.

---

## The Six States

| State | Meaning | Runs automatically? |
| --- | --- | --- |
| **scheduled** | Waiting for its target; available when due | Yes |
| **processing** | Owned by an atomic, per-request claim right now | In progress |
| **paused** | Intentionally stopped, with a reason | No |
| **failed** | Automatic attempts stopped at the failure threshold | No |
| **completed** | Its limit was reached, or its parent/feed no longer exists | No |
| **canceled** | Explicitly ended, or ended because its parent was trashed or deleted | No |

---

## How States Change

```
                    ┌──────────── Resume ────────────┐
                    │                                │
   start  →  scheduled  ⇄  processing  →  scheduled  │
                 │  │                                │
          Pause  │  └── threshold reached ──→  failed
                 ▼                                   │
              paused ──────────────────────────────┘
                 │
                 └── Cancel / parent trashed ──→  canceled
                                    limit reached ──→  completed
```

---

## State by State

### scheduled

The normal, healthy state. The series holds a future target and the worker will claim it when due.

**Available:** Run Next Submission Now, Pause, Change next submission, Cancel *(Premium)*, history, diagnostics. Plus Retry, if an issue is open.

> A series can be **scheduled** and still need attention: an issue is open, but the next automatic retry is still on the calendar. That's not a contradiction.

### processing

A worker pass or a manual action holds an exclusive claim. Nothing else can submit the same series at the same time.

- Claims older than **30 minutes** are recoverable, so an interrupted request can't strand a series forever.
- Don't click Run repeatedly at a locked series — the interface will say it's locked rather than pretending to queue anything.

### paused

Stopped on purpose, with a recorded reason:

| Reason | Set by | Cleared by |
| --- | --- | --- |
| `user` | Somebody clicking **Pause** | An explicit **Resume** |
| `feed_inactive` | Deactivating the feed | Reactivating the feed |

Reactivating a feed resumes **only** `feed_inactive` series. A user pause survives it, deliberately.

### failed

Consecutive failures reached the threshold — 3 by default. Automatic attempts stop; progress and history are preserved.

**Getting out:** fix the cause, then **Retry Failed Submission** (a success resolves the issue and resets the count) or **Resume** (reopens automatic attempts).

### completed

Either the limit was reached, or a required parent or feed no longer exists.

Attempts and child-entry audit links are retained. **Start Series From Now** begins a fresh series.

### canceled

Ended by an administrator, or automatically when the parent entry was trashed or permanently deleted.

- Child entries are never deleted by cancelling.
- Notes and retained attempts stay.
- A submission already in flight may still finish and be recorded; cancellation only prevents future scheduling.
- Cancelling requires the **Premium plan**.

---

## Feed Activation and the Lifecycle

| Feed event | Effect |
| --- | --- |
| **Deactivated** | Scheduled series are paused as `feed_inactive`. A claimed series is stopped at the final active-feed guard before submitting. |
| **Reactivated** | Only `feed_inactive` series resume. User-paused and failed series do not. |
| **Deleted** | Its series **end**. |

Both the native Gravity Forms feed toggle and the GravityOps Feeds tab use this same lifecycle — there's no second, divergent path.

---

## Which Buttons Appear When

| State | Run | Retry | Pause | Resume | Cancel | Change date | Start |
| --- | --- | --- | --- | --- | --- | --- | --- |
| scheduled | ✅ | if issue | ✅ | — | ✅ | ✅ | — |
| processing | — | — | ✅ | — | ✅ | — | — |
| paused | — | — | — | ✅ | ✅ | ✅ | — |
| failed | — | ✅ | — | ✅ | ✅ | ✅ | — |
| completed | — | — | — | — | — | — | ✅ |
| canceled | — | — | — | — | — | — | ✅ |

Run, Retry and Resume additionally require the feed to be **active**. Cancel requires the **Premium plan**. A series blocked pending review after a storage failure shows no submission buttons at all until the records are reviewed — Cancel stays available.
