Troubleshooting Playbook
Migrated from codex/collab/troubleshooting.md, this playbook centralises remediation steps for the most common production issues.
Incident Workflow
- Detect: Use Netdata or
./usenet services statusto confirm scope. - Stabilise: Pause automation jobs and disable affected services to prevent cascading failures.
- Diagnose: Gather logs, metrics, and configuration diffs.
- Resolve: Apply fixes and document the outcome in the runbook.
- Retrospective: Create follow-up actions and schedule validation.
Common Issues
Port Conflicts
- Run
./usenet validate --fixto kill stray docker-proxy processes. - Check
docker ps --format '\\{\\{.Ports\\}\\} \\{\\{.Names\\}\\}'for unexpected binds. - Reserve ports in
/etc/systemd/system.confwhen the OS auto-claims them.
Storage Degradation
- Inspect ZFS health with
zpool statusand run a scrub if errors appear. - For Btrfs, verify
btrfs device statsand replace suspect drives using the hot-swap procedure. - Ensure
udisks2is disabled to prevent desktop environments from mounting pools automatically.
Slow Automation
- Confirm API tokens have not expired by running
./usenet env list. - Review Netdata dashboards for CPU steal or iowait spikes.
- Restart automation containers with
./usenet services restart <name>.
Transmission Watch Folder Not Importing
- Confirm settings
watch-dir-enabledshould betrue.watch-dirshould match the container path (often/downloads/watch).
- Verify volume mapping
- Ensure the host watch directory is mounted to the expected container path.
- Permissions
- Confirm the container UID/GID can read the watch folder.
- Filesystem + inotify
- Watch folders rely on inotify; some network mounts or GVFS paths can fail.
- Check
fs.inotify.max_user_watchesif you expect many files.
- Dry test
- Drop a small
.torrentinto the watch folder and tail logs for import activity.
- Drop a small
Failed Updates
- Re-run
./usenet deploy --autoto reapply Compose templates. - Inspect
docker compose pulloutput to ensure registries are reachable. - Roll back to the previous tag stored in
docs/advanced/migration-log.md.
Diagnostic Commands
| Scenario | Command |
|---|---|
| Service health | ./usenet services status --verbose |
| Log tail | ./usenet services logs <service> --tail 200 |
| Network capture | ./usenet services exec <svc> -- tcpdump ... |
| Disk benchmarks | fio --filename=/data/test --rw=randrw ... |
Escalation
- Maintain a contact list for hardware vendors and tunnel providers.
- Use the
triage-results.jsontemplate to capture evidence for audits. - Schedule a post-incident review within 48 hours of resolution.