/
/
# What does this implement/fix? Speakers that were previously represented by a Universal Player (wrapping their DLNA/AirPlay protocol players) did not hand over to the real player when one appeared — for example generic LinkPlay speakers, which got a native player in #5729. The result was two players for one speaker, with the wrapper keeping all the outputs so the native player could not play. The takeover checked whether every protocol link had moved, but a link whose protocol player had not registered yet looks exactly like a link the native player refused, so the handover was abandoned. Refusals are now recorded when they actually happen. - Only genuinely refused protocol links keep a speaker on its Universal Player. - Protocol ownership that moved is now saved even when part of the handover is refused. - Native players that registered before the Universal Players were restored are re-checked. **Related issue (if applicable):** - N/A ## 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.