Diagnostics
Open Diagnostics from the app navigation. Start with System Information and Live Logs to identify whether the problem is the app, a DVR connection, or a notification destination.

Choose the right tool
Section titled “Choose the right tool”| Task | Use | Sends a notification? |
|---|---|---|
| Read app version, core state, storage, and DVR connections | System Information | No |
| Follow recent errors or connection activity | Live Logs | No |
| Check DVR reachability | Diagnostic Tests > Connectivity > DVR Connection | No |
| Run the shipped API diagnostic | Diagnostic Tests > Connectivity > DVR API | No |
| Check an alert delivery path | One test under Diagnostic Tests > Notifications | Yes |
| Export troubleshooting details | Export or Download debug bundle | No; files download locally |
| Ask for support | Report a Problem | Only when you submit the report |
Read System Information
Section titled “Read System Information”Check the ChannelWatch version, timezone, core status, and provider list first. The DVR rows show connection status, version, and monitoring freshness. A reachable DVR can still have degraded monitoring if the core has not seen fresh state; a successful HTTP request alone does not prove every monitor is healthy.
| Symptom | Next check |
|---|---|
| Core is stopped or unresponsive | Read container logs: docker logs channelwatch. |
| DVR is disconnected | Confirm host and port in Settings > General, then test connectivity. |
| DVR connects but monitoring is degraded | Review freshness details and the matching time window in Live Logs. |
| Storage warning | Check the DVR storage mount and your disk thresholds. |
| No enabled providers | Review Settings > Notifications and the routing matrix. |
For a multi-DVR setup, inspect the affected server’s row. Diagnostic tests use the first enabled DVR; selecting a server in the health view does not change that target. A test result is not a sweep of every configured server. Use doctor diagnose or Per-DVR Health to compare servers.
Run a connection check
Section titled “Run a connection check”- Find Diagnostic Tests > Connectivity.
- Run DVR Connection first.
- Run DVR API after connectivity succeeds.
- Read the result and the matching Live Logs before changing settings.
The shipped API diagnostic exercises the DVR endpoints ChannelWatch uses. Keep the failing endpoint and response code when asking for help; do not assume every failed endpoint means the DVR is too old.
v1.6.0 test limitation
Section titled “v1.6.0 test limitation”In bridge networking, localhost refers to the ChannelWatch container. Use the DVR host’s reachable LAN address instead.
Send one sample alert
Section titled “Send one sample alert”- Check the saved provider and per-DVR route.
- Under Diagnostic Tests > Notifications, choose the specific Channel Watching, VOD, Disk Space, or recording lifecycle test you need.
- Click Run.
- Confirm receipt in the destination itself, then review Notification Logs.
A successful sender result means the configured delivery path accepted the request. It does not prove a phone displayed it or a mail provider placed it in the inbox. Check the receiver when the app reports success but nothing appears.
Disk test sends can use the Disk Test Route Override in Settings > Advanced > Disk Alert Controls. When it is blank, they use the normal provider settings. CLI tests also send real notifications; they are not dry runs.
v1.6.3 results
Section titled “v1.6.3 results”Results distinguish Passed, Failed, and Skipped. A skipped notification test shows why the alert is disabled by the effective settings for the tested DVR. It does not send a sample. Keep your intended alert preset; you do not need to enable every alert to obtain a useful diagnostic result.
With healthy connections and working notification destinations, Run All Tests produces:
| Preset | Passed | Failed | Skipped |
|---|---|---|---|
| Balanced | 7 | 0 | 3 |
| Everything | 10 | 0 | 0 |
| Monitor Only | 2 | 0 | 8 |
The results show Tested DVR with the first enabled DVR’s name. Per-DVR overrides affect which notification tests run. For enabled tests, missing providers, delivery failures, connection errors, and timeouts remain failures.
Enabled notification tests send clearly marked [TEST] samples, including when you use a custom template. Their synthetic channel and program details are separate from real DVR activity. These samples do not add ordinary Watch History or timeline entries or alter active stream counts. Existing history is retained, including any samples recorded by older versions.
Read and export logs
Section titled “Read and export logs”Live Logs lets you filter lines, choose a line count, pause or resume updates, copy visible text, or download the full log. Filtering changes what you see; downloading the full log can include lines outside that filter.
For container output:
docker logs --tail 200 channelwatchdocker logs -f channelwatchChoose Standard or Verbose under Settings > General > Log Level. Use Verbose briefly to inspect event handling, then switch back. Log retention defaults to 7 days and is also configured in General.
Export includes system information, health details, test results, and recent logs. Treat that file as private until you review it: it can contain DVR names and addresses. For a sanitized support artifact, use Download debug bundle and read what it excludes.
Share the result
Section titled “Share the result”Use Report a Problem to prepare a public-safe preview and optional private attachments. Review the preview before submitting. You can still generate a local support package when direct submission is unavailable.
Related pages
Section titled “Related pages”- Common Issues — start from a symptom
- CLI Commands — headless diagnostics and test-send behavior
- doctor CLI — config validation and a multi-DVR diagnostic sweep
- Debug Bundles — sanitized local export
- Report a Problem — support preview and private attachment boundaries