/
/
/
# What does this implement/fix? <!-- Quick description and explanation of changes. --> pychromecast creates its control socket with `socket.AF_INET`, so a host service holding a native IPv6 address can never connect. Zeroconf reports IPv4 addresses before IPv6 ones, so such an address only turns up when a device's AAAA record is cached without its A record. pychromecast stores it as a fallback host, which then costs a failed connect and a five second backoff on every connection attempt that follows, leaving the player unavailable for longer than needed. Filter those addresses out of the discovered cast info before it reaches the socket client. IPv4-mapped addresses (`::ffff:*`) are kept, because an AF_INET socket resolves those back to their IPv4 address. The service list is never emptied, so the socket client can still pick up the IPv4 address once discovery reports it. **Related issue (if applicable):** ## 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: Marcel van der Veldt <[email protected]>