No audio output on RPI after a period of idle time

Open
#204 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Quiet
Tech stack
python

Research direction

Start by reproducing the daemon-mode failure after an extended idle period on the Raspberry Pi using the reported sendspin.audio and Music Assistant logs. Trace the stream lifecycle around “Stream STARTED” and “Stream ended” to determine why audio does not resume after the idle period. Done means playback resumes without restarting the service and the behavior is checked against the older 1.x client behavior.

Written by the indexing model from the issue text.

Description

After say 12+ hour of idle time, sendspin in daemon mode does not appear to actually play any audio until a restart of the service is done.

The only logs I've got are (the session on Mar 31 at 11:57 is what we are interested in), I'm showing some other logs so you can see it "does" work after a reboot:

Mar 30 18:36:50 DietPi sendspin[1663584]: DEBUG:sendspin.audio:Sync error: -0.7 ms, buffer: 29.86 s, speed: 100.00%, played: 48000, inserted: 0, dropped: 0, callback: 346.2 µs
Mar 30 18:36:51 DietPi sendspin[1663584]: DEBUG:sendspin.audio:Sync error: -0.7 ms, buffer: 29.95 s, speed: 100.00%, played: 48000, inserted: 0, dropped: 0, callback: 363.3 µs
Mar 30 18:36:52 DietPi sendspin[1663584]: DEBUG:sendspin.audio:Sync error: -0.7 ms, buffer: 29.95 s, speed: 100.00%, played: 48000, inserted: 0, dropped: 0, callback: 394.8 µs
Mar 30 18:36:53 DietPi sendspin[1663584]: DEBUG:sendspin.audio:Sync error: -0.7 ms, buffer: 29.86 s, speed: 100.00%, played: 48000, inserted: 0, dropped: 0, callback: 349.4 µs
Mar 30 18:36:54 DietPi sendspin[1663584]: DEBUG:sendspin.audio:Sync error: -0.7 ms, buffer: 29.86 s, speed: 100.00%, played: 48000, inserted: 0, dropped: 0, callback: 356.9 µs
Mar 30 18:36:56 DietPi sendspin[1663584]: DEBUG:sendspin.audio:Sync error: -0.7 ms, buffer: 29.86 s, speed: 100.00%, played: 48000, inserted: 0, dropped: 0, callback: 362.4 µs
Mar 30 18:36:56 DietPi sendspin[1663584]: DEBUG:aiosendspin.client.client:Stream ended for roles: all
Mar 31 10:50:23 DietPi sendspin[1663584]: INFO:aiosendspin.client.client:Stream started with codec flac
Mar 31 10:50:23 DietPi sendspin[1663584]: INFO:sendspin.audio:Stream STARTED: 1 chunks, 0.10 seconds buffered
Mar 31 10:50:33 DietPi sendspin[1663584]: DEBUG:aiosendspin.client.client:Stream ended for roles: all
Mar 31 10:57:02 DietPi sendspin[1663584]: INFO:aiosendspin.client.client:Stream started with codec flac
Mar 31 10:57:03 DietPi sendspin[1663584]: INFO:sendspin.audio:Stream STARTED: 1 chunks, 0.10 seconds buffered
Mar 31 10:57:13 DietPi sendspin[1663584]: DEBUG:aiosendspin.client.client:Stream ended for roles: all
Mar 31 11:00:51 DietPi sendspin[1663584]: INFO:aiosendspin.client.client:Stream started with codec flac
Mar 31 11:00:51 DietPi sendspin[1663584]: INFO:sendspin.audio:Stream STARTED: 1 chunks, 0.10 seconds buffered
Mar 31 11:01:01 DietPi sendspin[1663584]: DEBUG:aiosendspin.client.client:Stream ended for roles: all
Mar 31 11:57:09 DietPi sendspin[1663584]: INFO:aiosendspin.client.client:Stream started with codec flac
Mar 31 11:57:09 DietPi sendspin[1663584]: INFO:sendspin.audio:Stream STARTED: 1 chunks, 0.10 seconds buffered
Mar 31 11:57:24 DietPi sendspin[1663584]: DEBUG:aiosendspin.client.client:Stream ended for roles: all
root@DietPi:~# 

I don't know if this is an issue with MA or not, but no other players have this problem and I can go back to a pretty old version of sendspin-cli and the issue goes away (1.x)

MA logs:

2026-03-31 11:57:17.389 INFO (MainThread) [music_assistant.player_queues] Fetching tracks to play for playlist Daily Mix 2
2026-03-31 11:57:18.130 DEBUG (MainThread) [music_assistant.players] Handling command play_media for player Office Amp (by user blend9316)
2026-03-31 11:57:18.131 DEBUG (MainThread) [music_assistant.players] Redirecting power command to PlayerControl Office Amp (media_player.office_amp)
2026-03-31 11:57:27.239 DEBUG (MainThread) [music_assistant.players] Starting playback on Office Amp via protocol Sendspin (target=Office Amp), group_members=[]
2026-03-31 11:57:27.241 DEBUG (MainThread) [aiosendspin.server.connection.sendspin-cli-DietPi] Enqueueing message: GroupUpdateServerMessage
2026-03-31 11:57:27.242 INFO (MainThread) [music_assistant.streams] Start Queue Flow stream for Queue Office Amp - crossfade: smart_crossfade 
2026-03-31 11:57:28.393 DEBUG (MainThread) [aiosendspin.server.client.sendspin-cli-DietPi] Sending stream/start: StreamStartPayload(player=StreamStartPlayer(codec=<AudioCodec.FLAC: 'flac'>, sample_rate=48000, channels=2, bit_depth=24, codec_header='ZkxhQ4AAACISABIAAAAAAG5aC7gDcAAAAAAAAAAAAAAAAAAAAAAAAAAA'), artwork=None, visualizer=None)
2026-03-31 11:57:28.393 DEBUG (MainThread) [aiosendspin.server.connection.sendspin-cli-DietPi] Enqueueing role message: StreamStartMessage
2026-03-31 11:57:28.594 DEBUG (MainThread) [aiosendspin.server.connection.sendspin-cli-DietPi] Send summary role=player samples=104 send_gap_ms(avg=32499.3 min=0.0 max=3379907.3) ts_gap_ms(avg=32499.2 min=96.0 max=3370032.7) buf_ms(avg=5045.4 min=101.2 max=9975.8)
2026-03-31 11:57:33.633 DEBUG (MainThread) [aiosendspin.server.connection.sendspin-cli-DietPi] Send summary role=player samples=363 send_gap_ms(avg=13.9 min=0.0 max=815.3) ts_gap_ms(avg=96.0 min=96.0 max=96.0) buf_ms(avg=15896.4 min=196.9 max=29947.9)
2026-03-31 11:57:38.713 DEBUG (MainThread) [aiosendspin.server.connection.sendspin-cli-DietPi] Send summary role=player samples=53 send_gap_ms(avg=95.8 min=48.4 max=142.2) ts_gap_ms(avg=96.0 min=96.0 max=96.0) buf_ms(avg=29928.5 min=29899.2 max=29951.7)
2026-03-31 11:57:43.474 DEBUG (MainThread) [music_assistant.players] Handling command cmd_pause for player Office Amp (by user blend9316)
2026-03-31 11:57:43.474 DEBUG (MainThread) [music_assistant.players] Handling command cmd_pause for player Office Amp (by user blend9316)
2026-03-31 11:57:43.525 DEBUG (MainThread) [music_assistant.players] Player/protocol Office Amp does not support pause, using STOP instead
2026-03-31 11:57:43.527 DEBUG (MainThread) [aiosendspin.server.connection.sendspin-cli-DietPi] Enqueueing role message: StreamEndMessage
2026-03-31 11:57:43.551 DEBUG (MainThread) [aiosendspin.server.group] Stopping playback for group with clients: ['sendspin-cli-DietPi']
2026-03-31 11:57:43.552 DEBUG (MainThread) [aiosendspin.server.connection.sendspin-cli-DietPi] Enqueueing message: GroupUpdateServerMessage
2026-03-31 11:57:48.554 INFO (MainThread) [music_assistant.Universal Player] Clearing active output protocol on Office Amp
2026-03-31 12:02:57.960 INFO (MainThread) [music_assistant.webserver] WebSocket client authenticated as blend9316

Running DietPi 9.9.0, using the built in headphone output.

Dominant language
Python
Stars
190
Forks
36
Avg merge
11d 19h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Sendspin/sendspin-python-cli

All issues in Sendspin/sendspin-python-cli

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.