Troubleshooting
Symptom-first guide: find your failure mode and jump straight to the fix.
Something is not working. Find your symptom in the table below and follow the link β each entry goes directly to the relevant fix, not a general overview.

πFind your symptom
| Symptom | Where to look |
|---|---|
| Device is plugged in but does not appear in Hypercolor | Devices not found |
| Device shows up but will not connect or light up | Devices not found β connection failures |
Permission denied on USB device | Devices not found β udev rules |
| Another RGB tool (OpenRGB, Aura Sync, openrazer) is holding the device | Devices not found β conflicting software |
| Lian Li Uni Hub AL detected but not controlling correctly | Devices not found β firmware split |
| PrismRGB Prism 8 shows as βNollie 8 v2β in the device list | Devices not found β known rebrands |
| Audio-reactive effects are static β no reaction to music | Audio not reacting |
| Microphone is selected instead of system speaker output | Audio not reacting β monitor source |
Audio capture shows audio_available: false in status | Audio not reacting β capture pipeline |
| WLED / Hue / Nanoleaf / Govee device not discovered | Network discovery |
| Govee shows βno devices foundβ even on the same network | Network discovery β Govee LAN control |
| Philips Hue link-button pairing fails or times out | Network discovery β Hue pairing |
| Network device vanishes after a DHCP lease renewal | Network discovery β stable addressing |
| Effect applies but all LEDs show the same color (no gradient) | Studio β spatial layout |
| Scene switcher or zone controls behave unexpectedly | Studio troubleshooting |
| Daemon port 9420 already in use | Common issues β port conflict |
Daemon fails to start on first login (XDG_RUNTIME_DIR not set) | Common issues β systemd linger |
| Effects apply but the web UI preview is dark | Common issues β WebSocket preview |
| Low FPS, stuttering, or render loop lag | Performance |
| Render loop running but no frames are sent to devices | Performance β device output queues |
| Servo circuit breaker open β HTML effects frozen | Performance β Servo circuit breaker |
πRun a quick self-check first
Before digging into a specific page, run the built-in diagnostic command. It checks the render loop, device output queues, and config in about one second:
hypercolor diagnoseOr call the endpoint directly if the CLI is not in scope:
curl -s -X POST http://localhost:9420/api/v1/diagnose | jq '.data.summary'The response includes a summary with passed, warnings, and failed counts and a checks array with per-subsystem detail. A warning on render_loop or output_queues tells you which page to read next.
Target specific check categories to narrow the output:
# Check only device output state
hypercolor diagnose --check devices
# Check render pipeline only
hypercolor diagnose --check render
# Full report to file β attach to bug reports
hypercolor diagnose --report ~/hypercolor-diag.json --systemπCheck the logs
When a diagnostic check fails and you need more context, structured logs are the fastest path to the root cause. The daemon uses tracing throughout; set RUST_LOG before starting it:
# Recommended starting point for most issues
RUST_LOG=debug just daemon
# USB device problems
RUST_LOG=hypercolor_hal=debug just daemon
# Render pipeline and FPS issues
RUST_LOG=hypercolor_core::engine=trace just daemon
# Audio input
RUST_LOG=hypercolor_core::input=debug just daemonThe daemon defaults to info level, which is quiet by design. debug gives you device connections, protocol steps, and effect changes without flooding the terminal. trace on a specific module is only needed when a subsystem is actively misbehaving.
πTroubleshooting pages
Each page below is organized by symptom, not by subsystem. If your symptom does not appear in the table above, check the page closest to your failure category β the symptoms within each page are more specific than the summary table here.
πDevices not found
USB devices that are visible in lsusb but do not appear in Hypercolor, permission failures, conflicting software holding the HID device, and firmware-split or rebrand quirks for Lian Li and PrismRGB hardware.
πAudio not reacting
Audio-reactive effects that stay static: selecting the right PipeWire or PulseAudio monitor source, verifying the audio capture pipeline, and fixing the most common configuration mistakes.
πNetwork discovery
WLED, Philips Hue, Nanoleaf, and Govee devices that do not appear in discovery. Covers mDNS requirements, per-protocol pairing flows (Govee LAN control toggle, Hue link-button timing, Nanoleaf power-button hold), VLAN and AP-isolation issues, and firewall rules.
πStudio
Spatial layout problems (all LEDs showing the same color), zone configuration issues, scene activation not behaving as expected, and layer ordering surprises.
πCommon issues
Linux-specific first-run failures that are not hardware or audio related: daemon port conflicts, systemd user session constraints, XDG_RUNTIME_DIR not available on headless systems, and the WebSocket preview channel not connecting.
πPerformance
Low FPS, render loop budget misses, device output lag, GPU sampling fallbacks, and Servo circuit breaker trips. Includes how to read the performance snapshot from hypercolor diagnose and how to enable per-phase timing traces.
πStill stuck?
If none of the above pages resolve your issue:
- Run
hypercolor diagnose --report ~/hypercolor-diag.json --systemto capture a full diagnostic snapshot. - Check
RUST_LOG=debugdaemon output for the first ERROR or WARN line that appears when the problem occurs. - Open an issue on GitHub and attach the report file.
For developer-level log analysis, internal bus tracing, and WebSocket stream inspection, see Debugging in the contributing section.
In this section
Devices not found
USB device missing from Hypercolor? udev rules, logout/login, conflicting software, USB hubs, and the HAL discovery path explained.
Audio not reacting
Fix audio-reactive effects that don't respond: monitor vs. capture source, wrong device name in config, or audio disabled.
Network device not discovered
VLAN/AP isolation, mDNS not crossing subnets, firewall blocking multicast, and the known-IP escape hatch.
Studio issues
Stale-zone and save-rejected conflicts: optimistic concurrency, zone-revision mismatches, and Studio vs /layout.
Common issues
Linux first-run gotchas: port 9420 conflict, systemd-user linger, and XDG_RUNTIME_DIR not set (silent, no error).
Low FPS / stuttering
Diagnose Servo overhead, USB-bus saturation, and render budget problems using hypercolor diagnose and the daemon's built-in metrics.