You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As Applicable: Carefully read the Troubleshooting FAQ and confirm that
If using HA, I have confirmed the internal URL is set correctly
I have tried a wired connection for issues related to interrupted or poor playback quality
If the problem relates to a device then I have checked the device settings
If it is a frontend issue, I have tried a different widely used browser
For voice problems, I have sought help elsewhere before returning here
For playback problems, I have recycled power to the physical device
The problem
Description
Sonos Play:3 (model S3) exhibits the identical ERROR_CORRUPT_FILE stream corruption behavior as Play:1 when announcements are played via the native loadAudioClip / play_audio_clip API while music is actively streaming.
This is a follow-up to #4548, where developer @MarvinSchenkel explicitly asked:
"Thanks for testing on the play:5, I was wondering if this could affect the entire play:X series. If anyone still has a play:3 and could test this, then I could also include that in the fix if that does not work."
The answer is yes — Play:3 has the same problem.
Environment
MA version: 2.7.11
HA version: 2026.3.2
Sonos model: Play:3 (model number S3, firmware 86.4-73290)
Deployment: Docker, host network mode
Symptom
When a TTS announcement is sent to a Play:3 that is actively streaming music from an MA queue, the following occurs every time:
The active music stream is abruptly disconnected within 0.1–3 seconds ("Kitchen disconnected prematurely from [track]" warning)
ERROR_CORRUPT_FILE is reported for the interrupted track
Sonos attempts to advance to the next track, which also fails — cascading ERROR_CORRUPT_FILE errors follow
Announcements to the same Play:3 when it is not streaming music succeed without any errors.
Log Evidence
11:42:33.434 INFO Playback announcement to player Kitchen: http://.../api/tts_proxy/....mp3
11:42:33.619 WARNING Kitchen disconnected prematurely from "What Will Be" (sent 13,528,545 of ~60,878,109 bytes)
11:42:40.588 ERROR ConnectionResetError in serve_announcement_stream
11:42:41.875 ERROR ERROR_CORRUPT_FILE for "What Will Be"
How to reproduce
Have a Sonos Play:3 (model S3) connected as a player in Music Assistant (S2 provider)
Start playing a music queue on the Play:3 through MA (any source — local files, YouTube Music, etc.)
While music is actively streaming, send a TTS announcement to the Play:3 via HA:
service: tts.speakdata:
media_player_entity_id: media_player.kitchen # MA player entity for the Play:3message: "This is a test announcement"target:
entity_id: tts.piper
Observe in MA logs:
Playing announcement ... on Kitchen (native play_audio_clip path)
Player Kitchen disconnected prematurely from stream for [track name] within 0.1–3 seconds
ERROR_PLAYBACK_FAILED / ERROR_CORRUPT_FILE for the interrupted track 5–25 seconds later
Subsequent tracks in the queue also fail with ERROR_CORRUPT_FILE
Expected behavior: Announcement plays and music resumes normally (as it does on Sonos One, Era 100, Beam, etc.)
Actual behavior: The native loadAudioClip API corrupts the active HTTP stream. This is identical to the Play:1 behavior fixed in PR Fix announcement for Sonos Play:1's server#3009 — Play:3 just needs to be added to UNSUPPORTED_MODELS_NATIVE_ANNOUNCEMENTS in music_assistant/providers/sonos/const.py.
Note: Announcements to the same Play:3 when it is not streaming music succeed without errors.
Playback instigated via: HA service call (tts.speak with tts.piper targeting MA media player entities). Also reproducible with voice satellite wake/done sounds triggered from a tablet integration.
Network setup: Standard flat LAN, no VLANs/VPNs/subnets. Both MA and HA run in Docker with network_mode: host on the same server (192.168.5.62). Play:3 is wired ethernet. mDNS/multicast works correctly (Sonos discovery has no issues).
Not running HAOS — this is a standalone Docker Compose deployment on Linux.
What I've tried / ruled out:
Restarted MA container and verified issue persists across restarts
Confirmed the issue is 100% reproducible: every announcement to the Play:3 while music is streaming causes ERROR_CORRUPT_FILE; every announcement when music is NOT streaming succeeds
Confirmed announcements to other speakers (e.g., Fitz's Room, not a Play:X model) work fine even during active streaming
Enabled debug logging and captured the full flow — ffmpeg successfully fetches and serves the announcement audio; the corruption is on the music stream side, not the announcement stream
Verified this is not a network, DNS, or TTS proxy issue — the tts_proxy URLs are valid for 5 minutes and support multiple fetches
Root cause identified: Play:3 reports SonosCapability.AUDIO_CLIP and is not in UNSUPPORTED_MODELS_NATIVE_ANNOUNCEMENTS (only "Play:1" is listed), so MA uses the native play_audio_clip / loadAudioClip path. This is the same code path that was disabled for Play:1 in PR music-assistant/server#3009 due to identical ERROR_CORRUPT_FILE behavior. The developer explicitly asked in #4548 whether Play:3 was also affected — this confirms it is.
Previous MA version: Was running 2.7.3 (where announcement handling was different). Issue appeared after upgrading to 2.7.11, crossing the 2.7.6 boundary where PR #3009 changed the announcement architecture.
Proposed fix: Add "Play:3" to UNSUPPORTED_MODELS_NATIVE_ANNOUNCEMENTS in music_assistant/providers/sonos/const.py, same as Play:1.
What version of Home Assistant Core (if used) are your running
2026.3.2
What type of installation are you running?
Home Assistant Container
On what type of hardware are you running?
Proxmox
Have you included ALL of the information specified in the Troubleshooting FAQ or explained why you cannot
What version of Music Assistant has the issue?
2.7.11
How is the MA server installed?
Docker Container
Mandatory: Carefully read the Troubleshooting FAQ and confirm that
As Applicable: Carefully read the Troubleshooting FAQ and confirm that
The problem
Description
Sonos Play:3 (model S3) exhibits the identical
ERROR_CORRUPT_FILEstream corruption behavior as Play:1 when announcements are played via the nativeloadAudioClip/play_audio_clipAPI while music is actively streaming.This is a follow-up to #4548, where developer @MarvinSchenkel explicitly asked:
The answer is yes — Play:3 has the same problem.
Environment
Symptom
When a TTS announcement is sent to a Play:3 that is actively streaming music from an MA queue, the following occurs every time:
play_audio_clip(native SonosloadAudioClipAPI)"Kitchen disconnected prematurely from [track]"warning)ERROR_CORRUPT_FILEis reported for the interrupted trackERROR_CORRUPT_FILEerrors followAnnouncements to the same Play:3 when it is not streaming music succeed without any errors.
Log Evidence
11:42:33.434 INFO Playback announcement to player Kitchen: http://.../api/tts_proxy/....mp3
11:42:33.619 WARNING Kitchen disconnected prematurely from "What Will Be" (sent 13,528,545 of ~60,878,109 bytes)
11:42:40.588 ERROR ConnectionResetError in serve_announcement_stream
11:42:41.875 ERROR ERROR_CORRUPT_FILE for "What Will Be"
How to reproduce
Expected behavior: Announcement plays and music resumes normally (as it does on Sonos One, Era 100, Beam, etc.)
Actual behavior: The native loadAudioClip API corrupts the active HTTP stream. This is identical to the Play:1 behavior fixed in PR Fix announcement for Sonos Play:1's server#3009 — Play:3 just needs to be added to UNSUPPORTED_MODELS_NATIVE_ANNOUNCEMENTS in music_assistant/providers/sonos/const.py.
Note: Announcements to the same Play:3 when it is not streaming music succeed without errors.
Music Providers
file system
Player Providers
Sonos
Full log output
ma_20260323T114233_20260323T122000.log
Additional information
Playback instigated via: HA service call (
tts.speakwithtts.pipertargeting MA media player entities). Also reproducible with voice satellite wake/done sounds triggered from a tablet integration.Network setup: Standard flat LAN, no VLANs/VPNs/subnets. Both MA and HA run in Docker with
network_mode: hoston the same server (192.168.5.62). Play:3 is wired ethernet. mDNS/multicast works correctly (Sonos discovery has no issues).Not running HAOS — this is a standalone Docker Compose deployment on Linux.
What I've tried / ruled out:
ERROR_CORRUPT_FILE; every announcement when music is NOT streaming succeedstts_proxyURLs are valid for 5 minutes and support multiple fetchesRoot cause identified: Play:3 reports
SonosCapability.AUDIO_CLIPand is not inUNSUPPORTED_MODELS_NATIVE_ANNOUNCEMENTS(only"Play:1"is listed), so MA uses the nativeplay_audio_clip/loadAudioClippath. This is the same code path that was disabled for Play:1 in PR music-assistant/server#3009 due to identicalERROR_CORRUPT_FILEbehavior. The developer explicitly asked in #4548 whether Play:3 was also affected — this confirms it is.Previous MA version: Was running 2.7.3 (where announcement handling was different). Issue appeared after upgrading to 2.7.11, crossing the 2.7.6 boundary where PR #3009 changed the announcement architecture.
Proposed fix: Add
"Play:3"toUNSUPPORTED_MODELS_NATIVE_ANNOUNCEMENTSinmusic_assistant/providers/sonos/const.py, same as Play:1.What version of Home Assistant Core (if used) are your running
2026.3.2
What type of installation are you running?
Home Assistant Container
On what type of hardware are you running?
Proxmox
Have you included ALL of the information specified in the Troubleshooting FAQ or explained why you cannot