From 23e2a3cbd174da33c77e322658919b43aaeaabe8 Mon Sep 17 00:00:00 2001 From: Sam Rolfe Date: Tue, 6 Oct 2026 11:21:28 +1100 Subject: [PATCH] sam-4screen-desktop 2026-10-6:11:21:28 --- .obsidian/workspace.json | 8 +-- 000 daily/Daily Notes and To Do.md | 2 +- .../Error Tracking.md | 58 ++++++++++++++++++- 3 files changed, 62 insertions(+), 6 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index a9e614b..e0d03ca 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -55,7 +55,7 @@ "state": { "type": "search", "state": { - "query": "artemi", + "query": "error", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -212,6 +212,9 @@ }, "active": "26813e16e829b798", "lastOpenFiles": [ + "300 areas/360 Dev-Ops Network Computers/Error Tracking.md", + "100 Table of Contents/Areas.md", + "000 daily/Daily Notes and To Do.md", "300 areas/310 Home Assistant/Tuya Local Integration Notes.md", "300 areas/360 Dev-Ops Network Computers/Resource Use — .13 CPU & RAM.md", "010 inbox/Family Holiday Camping Wilsons Prom.md", @@ -224,7 +227,6 @@ "Clippings/alibabaopen-code-review Secure, fast, efficient, battle-tested at Alibaba's scale. Hybrid architecture code review tool deterministic pipelines + LLM Agent, precise line-level comments, built-in multi-language ruleset (NPE, thread-safety, XSS, S.md", "300 areas/395 AI Tools to try/Tools to try with AI.md", "200 projects/260 Ideas to Build Create Make/Artemis on GrapheneOS Pixel Mobile.md", - "100 Table of Contents/Areas.md", "400 Personal Family/460 Family Archive/Wilsons Prom Camp.md", "010 inbox/Obsidian Sorter.md", "300 areas/360 Dev-Ops Network Computers/Obsidian Sorter.md", @@ -238,8 +240,6 @@ "400 Personal Family/410 Business Ideas/Business Ideas.md", "300 areas/395 AI Tools to try/Paperclip Agent Harness Manager.md", "010 inbox/Paperclip Agent Harness Manager.md", - "Clippings/paperclipaipaperclip The open-source app everyone uses to manage agents at work.md", - "010 inbox/Joker Poker Screen Franchise.md", "010 inbox/_WATCHER", "300 areas/355 AI Research and Techniques", "300 areas/355 Ai Research and Techniques", diff --git a/000 daily/Daily Notes and To Do.md b/000 daily/Daily Notes and To Do.md index 52b8b19..8fff70c 100644 --- a/000 daily/Daily Notes and To Do.md +++ b/000 daily/Daily Notes and To Do.md @@ -17,7 +17,7 @@ tags: - [x] Pack away electronics and record with homebox ✅ 2026-08-10 - [x] Pack away snow gear and record with homebox ✅ 2026-08-10 - [ ] Whisper MiniMax replace local -- [ ] Fix Spotify +- [x] Fix Spotify ✅ 2026-10-06 - [ ] On off buttons for high ram use applications on 13 inside dashboard - [ ] Artemis on GrapheneOS - [ ] Internet Useage control and analysis software on kids phones diff --git a/300 areas/360 Dev-Ops Network Computers/Error Tracking.md b/300 areas/360 Dev-Ops Network Computers/Error Tracking.md index 6ec5489..d73a27b 100644 --- a/300 areas/360 Dev-Ops Network Computers/Error Tracking.md +++ b/300 areas/360 Dev-Ops Network Computers/Error Tracking.md @@ -1,6 +1,6 @@ --- created: 2026-09-06 -modified: 2026-09-06 +modified: 2026-10-06 title: Error Tracking summary: Log of network/system errors encountered and their fixes type: area @@ -117,3 +117,59 @@ Three failures in one chain. ### Note The agent MQTT intake now retries and reconnects. A future broker flap heals itself. Report the LED state to exercise the chain end to end. Keepalive timeouts on ESP32 suggest a weak WiFi link; consider a stable keepalive or fixed install if it recurs. + +--- + +# 2026-10-05 — Music stack silent: Mopidy has no Spotify, "NixOS-Speaker" missing from Spotify + +## Symptom +- No audio from any Snapcast speaker. +- The Spotify client did not list the `NixOS-Speaker` Connect device. +- The Mopidy / Iris Spotify library was empty. + +## Root cause +One network fault caused two failures. + +- The `.13` reboot at 20:16 broke DNS. NetworkManager assumed `enp42s0` and wrote a profile without the gateway. The IPv4 default route dropped. +- `librespot` could not reach `clienttoken.spotify.com`. systemd restarted it **6,361 times** between 20:16 and 05:32. +- `mopidy` refreshes its Spotify OAuth token **once**, at backend start. The refresh failed at 20:16:14 and never retried. `mopidy.service` stayed `active` with a dead Spotify backend for 10.5 hours. + +`idle` on all Snapcast streams is normal when nothing plays. It is not a fault indicator. + +## Fix +Restart the FIFO writers first, then Snapserver. + +```bash +# Mopidy Spotify. This alone restored the outage. +sudo systemctl restart mopidy + +# Use this instead if Snapcast is also silent. +sudo systemctl restart librespot mopidy && sleep 3 && sudo systemctl restart snapserver +``` + +If Spotify stays empty after the restart, the stored refresh token was revoked. Re-run the mopidy-spotify OAuth flow (`mopidy spotify`). + +## Verify +```bash +systemctl is-active snapserver mopidy librespot +journalctl -u mopidy -b | grep -iE 'Logged into Spotify|OAuth' +journalctl -u librespot -b | grep -c 'Main process exited' # expect 0 +``` + +Journal signatures on `.13`: + +| Log line | Meaning | +|---|---| +| `OAuth token refresh failed: Unknown error.` | Spotify backend dead. Restart Mopidy. | +| `Failed to load Spotify user profile` | Same fault, next line. | +| `Logged into Spotify Web API as guzzbinkles` | Healthy. | +| `Refreshed 152 Spotify playlists` | Healthy, library loaded. | + +## Notes +- Root cause fixed in commit `47f956e`: `networkmanager.unmanaged = [ "enp42s0" ]` plus `name_servers` in `resolvconf.extraConfig`. +- Ports on `.13`: 1704 Snapcast, 1705 control, 1780 web/JSON-RPC, 4953 announcements, 57621 librespot Connect handshake. +- **Open, low impact:** `.13` publishes no `_spotify-connect._tcp` mDNS record. librespot's `libmdns` and `avahi-daemon` both bind UDP 5353. Spotify Connect still worked through Spotify's cloud, so no change was made. +- **Open, cosmetic:** boot ordering still starts `snapserver` before its FIFO writers. It logs `End of file, length: 0` at boot and self-heals. + +## Related notes +- [[Home Network Map Overview]]