I'm not sure how to word this properly, but this came to light using mattkhan's Home Assistant integration (
https://yabb.jriver.com/interact/index.php/topic,137808.0.html).
I opened an issue on GitHub:
https://github.com/3ll3d00d/jriver_homeassistant/issues/21I'm sure that Matt understands this better than I do, but it appears the integration calls Playback/Zones and gets a list of zones from the MC server. It then uses Playback/Info per zone to provide information back to Home Assistant.
If I have a client laptop running MC, a dynamic zone is created for the laptop. If I quit MC on the laptop, the zone is removed from the server. If I don't quit MC and instead the client goes offline, the zone persists on the server. This zone is then essentially offline, but because it stays, the integration attempts to get information. This takes 6 seconds before failing.
Matt has worked around this by increasing the timeout value when calling to MCWS. It would be better if MCWS could somehow indicate upfront that the zones are not currently responsive, or simply remove them altogether from the listing.