Settings — Diagnostics
The Diagnostics page runs Sublarr’s full battery of self-checks and presents the result in one scannable view. Open it before filing a bug, after an upgrade, or whenever the dashboard’s health indicator goes amber. The checks are the same ones the /api/v1/health endpoint runs — Diagnostics just renders them with helpful context.
Health categories
Section titled “Health categories”Each row is one check. Categories group related checks:
| Category | Checks |
|---|---|
| Core | Database connection, migrations applied, scheduler running, log file writable. |
| Storage | Media path mounted + readable, config dir writable, disk free above warning threshold, trash dir writable. |
| Connections | Each *arr instance reachable, each media server reachable. |
| Providers | Each enabled provider’s last test result. |
| Translation | Each enabled translation backend’s last test result. |
| External | Internet reachable, AniDB cache fresh, TMDB / TVDB reachable. |
Per-check fields
Section titled “Per-check fields”| Field | Effect |
|---|---|
| Name | What’s being checked. |
| Status | OK / warning / failed. |
| Latency | Time the check took. |
| Last run | Timestamp. |
| Detail | Human-readable result (e.g. “Reachable, auth OK, 8 series indexed”). |
| Re-run | Force the check immediately. |
Self-test
Section titled “Self-test”The Run full self-test button at the top runs all checks in parallel and reports the result. Use it as the first thing in any troubleshooting session — most problems surface here.
| Self-test step | What it tries |
|---|---|
| Smoke test API | Hit every public API endpoint with a valid auth header; verify 2xx. |
| Smoke test scheduler | Confirm the scheduler is alive and processed at least one job in the last 24h. |
| Smoke test database | Run a representative query (recent activity rows). |
| Smoke test sample provider | Round-trip the highest-priority enabled provider. |
| Smoke test translation | If translation is enabled, dry-run the configured backend. |
Version + build
Section titled “Version + build”| Field | Reads |
|---|---|
| Sublarr version | The shipped semver. |
| Build SHA | Git commit. |
| Built at | Image build timestamp. |
| Python | Interpreter version. |
| Database | Driver + version (sqlite 3.42.0 / postgresql 14.x). |
| Redis | URL + version, or “not configured”. |
| Bundled binaries | ffmpeg, mkvmerge, ffprobe, ffsubsync, alass versions. |
These are exactly the fields maintainers ask for in bug reports — copy the block to GitHub issues.
Configuration dump
Section titled “Configuration dump”The Export current config button produces a sanitised YAML dump of every UI setting. Secrets are masked (api_key: ***); structure is preserved. Useful for:
- Sharing your setup when asking for help.
- Diffing two installs to spot drift.
- Capturing config before a major change.
Logs jump-off
Section titled “Logs jump-off”The Open logs button opens the Logs page filtered to the last 5 minutes. Useful for “I just clicked the failing thing — show me the log line that came out”.
Common reads
Section titled “Common reads”| Symptom | What Diagnostics shows |
|---|---|
| Scheduler stalled | scheduler_alive: failed plus the last successful firing’s age. |
| Provider auto-disabled | The provider’s row turns red with the auto-disable reason. |
| Translation backend offline | The backend’s row reports the upstream error message. |
| Disk filling up | Storage row shows percentage with amber/red coloring. |
| Database migration pending | Core row shows migrations: pending; the action button runs the migration. |
Performance metrics
Section titled “Performance metrics”Below the health grid is a small metrics panel — the same Prometheus metrics exposed at /api/v1/metrics, rendered for human reading:
| Metric | What it tells you |
|---|---|
| HTTP requests / sec (5m avg) | API load. |
| DB query duration (p95) | Database health. |
| Worker queue depth | Backlog signal. |
| Translation queue depth | Same for translation. |
| Memory (RSS) | Process memory usage. |
| Open file descriptors | Leak indicator if it grows over time. |
For graphs and alerts, plug /api/v1/metrics into your Prometheus + Grafana stack.
When to file a bug
Section titled “When to file a bug”If a check is failed with detail you can’t act on, capture:
- The full Diagnostics output (
Export full report— JSON). - The last 100 log lines around the failure (Logs → filter to relevant subsystem → Download).
- Your sanitised config dump.
Open a GitHub issue and attach all three. Maintainers can reproduce most issues from this combination alone.