Troubleshooting Overview

Run these five checks first, before anything else. They resolve the vast majority of issues.

Quick Diagnostic Checklist

1. Are all services running?

systemctl --user status shiloh-mixer shiloh-web-relay mixer_web

All three should show active (running). If any are failed, check logs before restarting.

2. Is audio actually flowing through PipeWire?

timeout 2 pw-top -b -n 3 | head -20

Look for at least one ALSA node with status R (running) and non-zero QUANT/RATE. If every row shows C with QUANT=0 RATE=0, no hardware is clocking the graph — see Mixer Troubleshooting.

3. Are the meters updating?

watch -n 1 'ls -la ~/mixer-state/meters.json'

The mtime should advance every ~100 ms. If it’s frozen, the mixer’s meters thread is stuck — restart shiloh-mixer.

4. Is the UDP port open?

ss -lunp | grep 5005

Should show shiloh-mixer listening on 0.0.0.0:5005. If not, the mixer is not running or crashed before binding.

5. Can you reach the mixer UI?

curl -sf http://localhost:8889/ > /dev/null && echo OK

If this fails, mixer_web is down or the Phoenix app crashed on startup.


How to Read Logs

Tail logs in real time

# Rust mixer (most important)
journalctl --user -u shiloh-mixer -f

# WebRTC egress (browser listener)
journalctl --user -u shiloh-web-relay -f

# Phoenix LiveView UI
journalctl --user -u mixer_web -f

# Mopidy player
journalctl --user -u mopidy -f

Look back over the last 10 minutes

journalctl --user -u shiloh-mixer --since "10 min ago"

Increase log verbosity

By default RUST_LOG=info. To see debug-level messages, override in the environment or in the systemd unit drop-in:

# One-off (temporary, lost on service restart)
RUST_LOG=debug ~/mixer/shiloh-mixer-linux-x86_64

# Persistent: edit the unit's Environment= line
systemctl --user edit shiloh-mixer
# Add:
# [Service]
# Environment=RUST_LOG=debug
# Then:
systemctl --user daemon-reload && systemctl --user restart shiloh-mixer

Useful log targets:

Target What it shows
RUST_LOG=info Default: connections, rejects, errors
RUST_LOG=debug All packet parsing, RT stats
RUST_LOG=shiloh_mixer=debug,shiloh_protocol=info Mixer debug only

Troubleshooting Sections