/
/
# What does this implement/fix? Setting up Spotify with an account that can never play audio used to fail late and unhelpfully: you signed in, approved playback, finished the whole flow, and only discovered the problem when playback did not work. Adding the same account twice was possible too, which just produces two provider instances fighting over one account. The setup flow now checks the account and stops with a clear message instead of letting you finish: - **No Spotify Premium** — librespot, which plays this provider's audio, refuses to stream for a free account, so the flow says so right after the sign-in. - **Account already set up** — each Spotify account can only be added once; reconfiguring the instance that already owns the account is of course still fine. - **Playback approved with a different account** — the sign-in and the playback approval are two separate steps that could land on two different Spotify accounts. If they do, the flow asks again rather than storing a credential that does not match your library. An account lookup that Spotify does not answer is not held against the user: the setup simply continues. The first two checks share the single `GET /me` call that the flow makes anyway. ## Types of changes - [ ] Bugfix (non-breaking change which fixes an issue) — `bugfix` - [ ] New feature (non-breaking change which adds functionality) — `new-feature` - [x] 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` - [ ] 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.