> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fusioncore.us/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitoring Job Runs

> Find Job Runs, read their statuses, stages, and errors, and see how automatic retries appear.

Every run of a Job Group leaves a Job Run record with its stages and any errors. Use these records to confirm a run finished and to find out why records failed.

## Prerequisites

* You have the **FC Platform - Manage Async Jobs** permission set.
* The tabs for Job Groups, Job Runs, Job Run Stages, and Job Errors are not in any fusionCore app's navigation. Open them from the **App Launcher**.

## Find a Run

Start from whichever record you have:

* **Job Group:** Open the record. **Last Run** links to the most recent run, and the **Job Runs** related list shows all runs. The **Job Errors** related list shows errors across runs.
* **Job Runs tab:** Open it from the **App Launcher** to list every run. Runs are named `JR-` followed by a number.

![The Job Group record Details panel showing Is Active checked and Last Run linking to JR-000003](https://mintcdn.com/fusionspan/XDzICb2WNqgAWbUY/images/end-user-guides/async-job-coordinator/job-group-record-last-run.png?fit=max\&auto=format\&n=XDzICb2WNqgAWbUY\&q=85\&s=e453d4da354c7728fc53a337c4799632)

Last Run on the Job Group record

On a **Job Run**, check **Status** and **Number Of Errors**. The record also lists its **Job Run Stages** and **Job Errors**.

![A Job Run record with Status Completed with Errors and Number Of Errors 1, a Job Errors related list with one error, and five Job Run Stages](https://mintcdn.com/fusionspan/XDzICb2WNqgAWbUY/images/end-user-guides/async-job-coordinator/job-run-completed-with-errors.png?fit=max\&auto=format\&n=XDzICb2WNqgAWbUY\&q=85\&s=54c4c715a298439a7c712968ea46eaed)

A Job Run that finished with one error

## Read the Status

A Job Run and each Job Run Stage use the same four statuses. The table gives the meaning for a run, then for a stage.

| **Status** | **Meaning** |
| - | - |
| **Pending** | Run: created, and no batch has started yet. Stage: waiting to start, for example because no batch slot is free. |
| **In Progress** | Run: at least one batch has started. Stage: its batch job is running. |
| **Completed with Errors** | Run: finished and **Number Of Errors** is greater than 0. Stage: the stage logged at least one Job Error. |
| **Completed Successfully** | Run: finished with no remaining errors. A run whose failures all succeeded on retry ends here. Stage: finished and logged no new errors. |

> [!NOTE]
>
> **Number Of Errors** on the Job Run is the authoritative signal. Use it to decide whether a run needs attention.

## Read the Stages

A **Job Run Stage** is one step's execution. Open it from the **Job Run Stages** related list on the Job Run. Stages are named `JRS-` followed by a number.

| **Field** | **What it tells you** |
| - | - |
| **Sequence** and **Subsequence** | The step's position. Subsequence numbers identify substages of a parallel step. |
| **Status** | The stage's own status. |
| **Batch Job ID** | The Salesforce batch job. Search for it in **Setup**, **Apex Jobs**. |
| **Context 1** and **Context 2** | Data passed to the stage. A retry stage's **Context 1** lists the failed record Ids. |

A stage with no records finishes immediately as **Completed Successfully**.

## Read the Errors

Open a **Job Error** from the **Job Errors** related list on the Job Run, the Job Run Stage, or the Job Group. Errors are named `JE-` followed by a number.

| **Field** | **What it tells you** |
| - | - |
| **Error Message** | What went wrong. |
| **Record Id** | The record that failed. Blank for unhandled exceptions. |
| **Description** | The stack trace, when there is one. |
| **Context Data** | The batch chunk that failed, for unhandled exceptions. |

![A Job Error record showing the Job Run, Job Run Stage, Job Group, Job Definition, Record Id, and the Error Message Website is required to create the primary Contact](https://mintcdn.com/fusionspan/XDzICb2WNqgAWbUY/images/end-user-guides/async-job-coordinator/job-error-record.png?fit=max\&auto=format\&n=XDzICb2WNqgAWbUY\&q=85\&s=d789936fd40c5d61855a6a7832dc0c5a)

A Job Error record

## How Retries Appear

After all regular stages finish, fusionCore retries failed records once. A retry stage repeats an earlier step's **Sequence** and has a higher `JRS-` number than the regular stages.

* Records that succeed on retry have their Job Errors deleted.
* If the step's class reports only successes from `executeRetry` (the recommended pattern), records that fail again keep their original Job Error and no new one is added.
* A retry stage can show **Completed Successfully** even though its records failed again, because it logged no *new* errors. The Job Run then stays **Completed with Errors**. Trust **Number Of Errors**.
* Unhandled exceptions are never retried.

## Find the Schedule

A Job Group's schedule appears in **Setup**, **Scheduled Jobs**, with a name in the form `JobGroupRun_<Job Group Id>`. Change the schedule in the Job Group Manager, not here. See [Managing Job Groups](https://docs.fusioncore.us/end-user-guides/platform-setup/async-job-coordinator/managing-job-groups.md).

![The All Scheduled Jobs list filtered to J, showing one JobGroupRun job of type Scheduled Apex with its next scheduled run](https://mintcdn.com/fusionspan/XDzICb2WNqgAWbUY/images/end-user-guides/async-job-coordinator/scheduled-jobs-job-group-run.png?fit=max\&auto=format\&n=XDzICb2WNqgAWbUY\&q=85\&s=2e15a3efa8247208bca8405ce03d79a3)

A Job Group schedule in Setup, Scheduled Jobs

## Limitations and Common Pitfalls

* **A run can stay Pending indefinitely.** If no batch slot is free when a run starts, its stages wait. Capacity is rechecked only when another stage of the same run finishes, so a run with nothing running never starts on its own. Because any Batch Apex job in the org uses a slot, other jobs can hold a run back. A run can also stall the same way partway through and stay **In Progress**.
* **A Pending run blocks saving the Job Group.** The Job Group Manager shows a banner with **View Run** links. There is no Cancel action: to clear a stuck run, open it with **View Run** and delete the Job Run. Its Job Run Stages are not deleted with it; they remain with a blank **Job Run** and have no effect on later runs. If it was the group's latest run, **Last Run** on the group becomes blank until the next run starts. The next scheduled run starts fresh.
* **There is no Cancel button.** You cannot stop a run from the UI.
* **A retry stage's status can mislead.** Check **Number Of Errors** on the Job Run, not the retry stage's status.
* **Errors without a Record Id are not retried.** Read the **Description** for the stack trace.
* **Run-level problems are written to Log records.** fusionCore creates a **Log** (`FCORE_BASE__Log__c`) record when a group has no Job Definitions (no run is created) and when a run finishes with errors.

## Related Features

> [card] [Async Job Coordinator Overview](https://docs.fusioncore.us/end-user-guides/platform-setup/async-job-coordinator/index.md)
>
> How runs, stages, and retries work.

> [card] [Async Job Coordinator Example](https://docs.fusioncore.us/end-user-guides/platform-setup/async-job-coordinator/example.md)
>
> See a run with errors, then a clean run.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.