A modern, network-enabled music player platform built on Rockbox technology. rockboxd.tsiry-sandratraina.com
rust deno navidrome airplay libadwaita zig mpris snapcast mpd rockbox audio subsonic
2

Configure Feed

Select the types of activity you want to include in your feed.

rockboxd / mintlify / reference / troubleshooting.mdx
4.1 kB 142 lines
1--- 2title: "Troubleshooting" 3description: "Common errors, the symptoms they produce, and how to fix them." 4icon: 'wrench' 5--- 6 7## No audio when using built-in CPAL on macOS 8 9**Symptom:** `rockboxd` starts cleanly, the UI shows playback progressing, 10but no audio is heard. 11 12**Cause:** the CPAL audio stream failed to open, usually because the selected 13output device was disconnected or the system audio stack returned an error. 14 15**Fix:** update to the latest release. Verify the correct output device is 16set in System Settings Sound Output. If you build from source, check that 17the CPAL-based sink compiled correctly (`nm zig/zig-out/bin/rockboxd | grep pcm_cpal`). 18 19## Snapcast: silence, then snapserver disconnects 20 21**Symptom:** snapserver logs `Stream: 'default' eof` shortly after rockboxd starts. 22 23**Cause:** snapserver was started **before** rockboxd, so it opened the 24FIFO first and saw EOF. 25 26**Fix:** start rockboxd first, then snapserver. Rockbox holds a permanent 27write-side handle on the FIFO so snapserver never sees EOF mid-track. 28 29For TCP mode, the order is reversed start snapserver first. 30 31## Squeezelite disconnects every 36 seconds 32 33**Cause:** the `STMt` heartbeat is not being answered. squeezelite has a 3436-second watchdog. 35 36**Fix:** every `STMt` heartbeat must be answered with `audg`. This is 37already the case in current builds; if you're hacking on 38`crates/slim/`, don't strip that response. 39 40## Stale binary after editing C or Rust 41 42**Symptom:** behaviour doesn't match the source code; logs reference 43old strings. 44 45**Cause:** Zig only re-links when the static libraries are newer than 46the binary. 47 48**Fix:** 49 50```sh 51ls -la zig/zig-out/bin/rockboxd \ 52 build-lib/libfirmware.a \ 53 target/release/librockbox_cli.a 54``` 55 56If `rockboxd` is newer than every `.a`, force a rebuild: 57 58```sh 59# After C changes 60cd build-lib && make lib && cd .. && cd zig && zig build 61 62# After Rust changes 63cargo build --release -p rockbox-cli -p rockbox-server && cd zig && zig build 64``` 65 66## "library_directory is not set" after fresh install 67 68**Cause:** `~/.config/rockbox.org/settings.toml` is missing or has no 69`music_dir` key. 70 71**Fix:** 72 73```toml 74music_dir = "/path/to/your/Music" 75``` 76 77## AirPlay receiver refuses to connect 78 79**Symptom:** logs show `RTSP ANNOUNCE → 401` or `Receiver requires 80password`. 81 82**Cause:** the receiver requires a PIN/password (most "AirPlay 2" gear). 83 84**Status:** AirPlay 2 pairing/encryption isn't implemented. Use a 85shairport-sync receiver, an Apple TV, an Airport Express, or another 86AirPlay 1 device. See [AirPlay](/audio-output/airplay). 87 88## Chromecast plays once then stops 89 90**Symptom:** first track plays through, queue advances, second track 91gets stuck buffering. 92 93**Cause:** the Chromecast cannot reach back to port 7881 on rockboxd's 94host. Common when rockboxd is in a VM/container. 95 96**Fix:** forward port 7881 to the host, or run the container with 97`--network host`. See the [Chromecast](/audio-output/chromecast) page. 98 99## mDNS discovery returns nothing 100 101**Symptom:** the device picker is empty, even though receivers are on 102the LAN. 103 104**Causes & fixes:** 105 106- **Multicast doesn't cross Docker bridges.** Use `--network host`. 107- **Some Wi-Fi APs filter multicast.** Enable "multicast forwarding" or 108 "IGMP snooping" vendor-specific naming. 109- **Avahi/mDNS not running.** On Linux, ensure `avahi-daemon` is 110 running for SSDP/Bonjour to work. 111 112## "address already in use" on startup 113 114**Cause:** a previous rockboxd process didn't shut down cleanly, or 115another service is on one of the API ports. 116 117**Fix:** 118 119```sh 120lsof -i :6061 -i :6062 -i :6063 -i :6600 121kill -9 <pid> 122``` 123 124…or change the bind ports via the env vars in 125[Reference › Ports](/reference/ports). 126 127## Logs are too quiet 128 129```sh 130RUST_LOG=debug rockboxd 131``` 132 133Or scoped: 134 135```sh 136RUST_LOG=rockbox_airplay=debug,info rockboxd 137RUST_LOG=rockbox_slim=debug,info rockboxd 138``` 139 140Never use `eprintln!` / `println!` in the codebase — they bypass the 141filter and pollute stdout (which breaks FIFO mode). All Rust logging 142goes through `tracing`.