/
/
# What does this implement/fix? <!-- Quick description and explanation of changes. --> nugs returns the cost plan under `promo.plan` instead of the top-level `plan` field for promotional and trial subscriptions, so building the subplayer params raised `TypeError: 'NoneType' object is not subscriptable` for those accounts, even though login, browsing and the account page work. Prefer the regular plan, fall back to the promo plan, and raise a clear `ProviderPermissionDenied` when the account has neither instead of letting a raw TypeError surface from the websocket handler. I couldn't actually test this as nugs has no trial plans anymore. The original path remains so there will no regression for existing users but it means in future if they do reinstate any promo plans that this will now work. **Related issue (if applicable):** - related issue <link to issue> ## Types of changes <!-- Tick exactly one box. CI (.github/workflows/pr-labels.yaml) derives the label from the ticked box and applies it automatically; the release-notes generator uses that same label to slot this change into the next release notes. --> - [X] 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` - [ ] 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. --------- Co-authored-by: Claude <[email protected]> Co-authored-by: Marvin Schenkel <[email protected]>