/
/
/
# What does this implement/fix? Album art could stop showing up while everything else kept working — most visibly on a cast dashboard, which sits on one screen for hours and so never re-requests an image it already failed to load. A local-file provider marks itself unavailable after a single failed library scan and only recovers when a later full sync completes. During that window the image proxy rejected *every* image belonging to that provider before it even looked in its caches, so art that was already rendered and sitting on disk was answered with a "not found". It also remembered the failure as a missing image for 5 minutes, delaying recovery further. Album art stored as a `cover.jpg` next to the music files is hit hardest, because that image belongs to the album rather than the track and needs one extra provider lookup that embedded artwork does not. Changes: - Cached artwork is now served even while its provider is briefly unavailable; availability is only checked once there is no other way left to read the image. - An unavailable provider is reported as such instead of as a missing image, so nothing is remembered and art returns the moment the provider does. - Failures on this path now say *why* they failed — the log line previously ended in a colon with no reason. - Shared work that every caller waits for no longer logs failures its callers already report. This is what produced the stream of `Exception in task ... is not available` warnings. **Related issue (if applicable):** - reported on Discord ## Types of changes - [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.