/
/
/
# What does this implement/fix? When a provider is unloaded (reload, disable, remove), Music Assistant unregisters each of its players first. If one player failed to shut down cleanly, everything after it was skipped: the provider's other players were never unregistered and kept their connections and listeners running, the provider itself was never unloaded, and it stayed listed as loaded because the cleanup step never ran. Player shutdown is now best-effort, so one misbehaving player no longer takes the rest of the unload down with it. Changes: - a player that fails to shut down is logged and skipped instead of aborting the unload - the remaining players of the provider are still unregistered - the provider is always cleaned up and stops being listed as loaded **Related issue (if applicable):** - follow-up on review feedback from #5433 ## 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.