> For the complete documentation index, see [llms.txt](https://wiki.crosswatch.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.crosswatch.app/crosswatch/main-dashboard/status-dashboard.md).

# Status dashboard

<figure><img src="/files/1sLBBbrcf6fkKi6HwIc6" alt=""><figcaption><p>Status row on the Main page for monitoring, health, and update checks.</p></figcaption></figure>

This page covers the status row on **Main**.

Use [Main dashboard](/crosswatch/main-dashboard.md) for the full page overview.

Unlike **Settings → Overview**, this row focuses on live operational state.

It gives you a fast operational view of CW.

It groups status into two areas:

1. **Monitoring status** — **Scheduler**, **Watcher**, and **Webhook**
2. **System status** — **Sync pairs**, **CW Health**, and **Updates**

Select a status item to open its settings page or run a fresh check.

### Status indicators

The dashboard uses color and motion to show state.

| Indicator          | Meaning                                                  |
| ------------------ | -------------------------------------------------------- |
| Green              | Enabled and working normally                             |
| Red                | Unavailable, misconfigured, or needs attention           |
| Grey               | Disabled, still checking, or status unavailable          |
| Animated indicator | Activity is currently in progress                        |
| Progress ring      | Active playback progress from **Watcher** or **Webhook** |

Hover over a status item to see more detail.

Tooltips can show the next scheduler run, connected providers, active playback streams, or installed version.

### Monitoring status

#### Scheduler

The **Scheduler** runs synchronization automatically from the saved schedule.

It only appears when standard or advanced scheduling is enabled.

#### States

| State              | Meaning                        |
| ------------------ | ------------------------------ |
| `scheduled`        | Standard scheduling is enabled |
| `advanced`         | Advanced scheduling is enabled |
| Animated indicator | A scheduled task is running    |
| `next <time>`      | Next expected run time         |

CW refreshes scheduler status every `30` seconds while scheduling is enabled.

#### Advanced Scheduler badges

Advanced schedules can show extra badges:

| Badge                 | Meaning                             |
| --------------------- | ----------------------------------- |
| `C1`, `C2`, and so on | Number of enabled capture schedules |
| `E1`, `E2`, and so on | Number of enabled event triggers    |

A capture schedule is counted only when it is active and has a provider, feature, and execution time.

An event trigger is counted only when it is active, uses the `sync_pair` action, and includes both a sync pair and route identifier.

Selecting this status opens [Scheduling](/crosswatch/settings/scheduling.md).

#### Watcher

The **Watcher** polls your media servers for active playback.

Use it when scrobbling is enabled and **Watcher** is the selected source.

#### Information shown

During playback, the status can show:

1. media title
2. playback progress
3. playback state
4. active stream count
5. provider and provider instance

When more than one stream is active, the status shows a badge.

The tooltip shows stream-level detail.

#### States

| State           | Meaning                                                    |
| --------------- | ---------------------------------------------------------- |
| Active playback | The service is running and at least one stream is active   |
| Running or idle | The service is available, but no active playback was found |
| `unavailable`   | The service did not respond successfully                   |

CW waits `35` seconds before marking **Watcher** unavailable.

This avoids brief network blips causing false alarms.

When **Webhook** support is enabled, playback detail refreshes every `5` seconds.

Otherwise, the normal refresh interval is `15` seconds.

Selecting this status opens [Watcher](/crosswatch/settings/scrobbler/watcher.md).

#### Webhook

The **Webhook** status shows playback events received from supported media servers.

Unlike **Watcher**, webhook mode receives pushed playback events instead of polling for them.

#### Information shown

During playback, the status can show:

1. media title
2. playback progress
3. playback state
4. simultaneous webhook stream count
5. source provider

When no playback is active, the status stays available and shows that the webhook listener is ready.

Webhook streams are tracked separately from Watcher streams.

CW can identify sources such as Plex, Emby, and Jellyfin webhooks.

{% hint style="warning" %}
A listening webhook state does not prove end-to-end delivery.

It only shows that CW is configured and ready to receive events.
{% endhint %}

Selecting this status opens [Webhooks](/crosswatch/settings/scrobbler/webhooks.md).

### Multiple playback streams

**Watcher** and **Webhook** can each report more than one active stream.

When that happens:

1. the total stream count appears as a badge
2. the visible stream rotates every `30` seconds
3. the tooltip lists all known streams

Watcher and Webhook rotate independently.

### System status

#### Sync pairs

The **Sync pairs** status shows whether CW has usable synchronization routes.

CW counts configured pairs and checks how many are enabled.

A pair is treated as active unless its `enabled` value is set to `false`.

**States**

| State       | Meaning                           |
| ----------- | --------------------------------- |
| `none`      | No sync pairs are configured      |
| `available` | Pairs exist, but all are disabled |
| `active`    | At least one pair is enabled      |

The tooltip shows the total pair count and the enabled pair count.

Selecting this status opens [Configure Pairs](/crosswatch/settings/configure-pairs.md).

#### CW Health

**CW Health** shows whether configured providers are reachable.

It checks providers that are both configured and enabled.

It then compares them with the latest connection results.

**States**

| State       | Meaning                                          |
| ----------- | ------------------------------------------------ |
| `checking`  | Provider status is not ready yet                 |
| `none`      | No providers are configured                      |
| `healthy`   | All configured providers are connected           |
| `attention` | One or more configured providers are unavailable |

When attention is required, the tooltip can show:

1. connected provider count
2. total configured provider count
3. unavailable provider names

Selecting **CW Health** starts a new provider connection check.

**What it validates**

This check confirms that CW can reach the configured provider APIs with the current credentials and settings.

It does not guarantee:

1. every item will match cleanly
2. every provider supports every feature
3. a sync run will complete without item-level errors
4. remote APIs are free from rate limits or temporary failures

Use [Output panel](/crosswatch/main-dashboard/output-panel.md) and [Health](broken://spaces/3rh5THg1PdhVsBt3GALo/pages/wb7Ll0gOfQcVcNezKShx) when you need deeper detail.

#### Updates

The **Updates** status compares the installed CW version with the latest GitHub release.

Version strings are normalized before comparison.

That means values like `v1.2.3` and `1.2.3` compare correctly.

**States**

| State       | Meaning                                                   |
| ----------- | --------------------------------------------------------- |
| `checking`  | Update check is still running                             |
| `available` | A newer public release is available                       |
| `current`   | Installed version matches the latest release              |
| `ahead`     | Installed version is newer than the latest public release |
| `unknown`   | Release check could not be completed                      |

The tooltip can show:

1. installed version
2. latest available version
3. whether the build is ahead of public release
4. whether the release check failed

An `ahead` status is normal for development builds or images that contain unreleased changes.

Selecting **Updates** starts a new update check.

### Automatic refresh

The dashboard refreshes when CW expects state to have changed.

Typical triggers include:

1. opening the **Main** page
2. returning focus to the browser tab
3. saving configuration
4. changing sync pairs
5. authentication changes
6. provider status updates
7. update check completion
8. manual scheduler or Watcher refresh

CW pauses unnecessary polling while the browser tab is hidden.

Polling resumes when the page becomes visible again.

### Limits

The status dashboard is a summary.

It does not replace run results or logs.

Use **View details** for per-run results.

Use the application logs when you need to inspect:

* authentication failures
* provider API errors
* item matching failures
* webhook delivery problems
* Watcher connectivity problems
* scheduler execution errors

### Related topics

* [Main dashboard](/crosswatch/main-dashboard.md)
* [Navigation](/crosswatch/main-dashboard/navigation.md)
* [Output panel](/crosswatch/main-dashboard/output-panel.md)
* [Dashboard widgets](/crosswatch/main-dashboard/dashboard-widgets.md)
* [Configure Pairs](/crosswatch/settings/configure-pairs.md)
* [Scheduling](/crosswatch/settings/scheduling.md)
* [Watcher](/crosswatch/settings/scrobbler/watcher.md)
* [Webhooks](/crosswatch/settings/scrobbler/webhooks.md)
* [Health](broken://spaces/3rh5THg1PdhVsBt3GALo/pages/wb7Ll0gOfQcVcNezKShx)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.crosswatch.app/crosswatch/main-dashboard/status-dashboard.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
