/
/
/
# What does this implement/fix? A sync group regularly asks "can every speaker in here still be reached on this protocol?" to decide whether it can move the session back to the leader's own protocol. To answer it, the group worked out each speaker's routes by hand, and for linked protocols it trusted a flag that is set once when the link is created and never updated afterwards — so it always read as "still available". The effect: if a speaker's AirPlay (or other) endpoint dropped off while the speaker itself stayed reachable another way, it still looked like AirPlay was a valid route to it. The group could then move the whole session onto that dead route and leave that speaker silent. Both places in the sync group that ask this question now share one helper built on the player's own list of outputs, where availability is resolved from the live protocol player instead of the stored flag. ## Types of changes - [ ] Bugfix (non-breaking change which fixes an issue) — `bugfix` - [ ] New feature (non-breaking change which adds functionality) — `new-feature` - [ ] Enhancement to an existing feature — `enhancement` - [ ] New music/player/metadata/plugin provider — `new-provider` - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) — `breaking-change` - [ ] Refactor (no behaviour change) — `refactor` - [ ] Documentation only — `documentation` - [x] Maintenance / chore — `maintenance` - [ ] CI / workflow change — `ci` - [ ] Dependencies bump — `dependencies` ## Checklist - [x] The code change is tested and works locally. - [x] `pre-commit run --all-files` passes. - [x] `pytest` passes, and tests have been added/updated under `tests/` where applicable. - [ ] For changes to shared models, the companion PR in `music-assistant/models` is linked. - [ ] For changes affecting the UI, the companion PR in `music-assistant/frontend` is linked. - [x] I have read and complied with the project's [AI Policy](https://github.com/music-assistant/.github/blob/main/AI_POLICY.md) for any AI-assisted contributions. - [ ] I have [raised a PR against the documentation repository](https://github.com/music-assistant/music-assistant.io/blob/main/CONTRIBUTING.md) targeting the main or beta branch as appropriate.