fix: evict image from cache on error during image loading#26078
fix: evict image from cache on error during image loading#26078mertalev merged 2 commits intoimmich-app:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Fixes a Flutter image-caching edge case in the mobile app where a failed image load could leave an erroring ImageStreamCompleter stuck in the ImageCache, preventing subsequent successful reloads for the same image provider key.
Changes:
- Evict the
ImageProviderkey fromPaintingBinding.instance.imageCachewhenrequest.load(decode)throws. - Preserve existing behavior by rethrowing the error to current listeners while ensuring future resolves can retry.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Also from the if the loadOriginal toggle was enabled, and the thumbnail would fail for whatever reason, the code never tries to load the original image. I am not sure how likely it would be that a thumbnail fails, but the original image would work. But thats also something I noticed. |
That's odd, I assumed it isn't cached if there's an error. |
|
@mertalev I also thought that but when I checked the putIfAbsent Method of the ImageCache I noticed that only a normal ImageStreamListener is attached, and no error listener. And also in the So on an error the entry is sadly not automatically evicted from cache Too my understanding: The ImageCache actually caches the ImageStreamCompleter. First it will be in the pending state, and if a first image was emitted it will be moved to "Live" or "normal" cache state. |
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/immich-app/immich-machine-learning](https://github.com/immich-app/immich) | patch | `v2.5.5` → `v2.5.6` | | [ghcr.io/immich-app/immich-server](https://github.com/immich-app/immich) | patch | `v2.5.5` → `v2.5.6` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>immich-app/immich (ghcr.io/immich-app/immich-machine-learning)</summary> ### [`v2.5.6`](https://github.com/immich-app/immich/releases/tag/v2.5.6) [Compare Source](immich-app/immich@v2.5.5...v2.5.6) ##### v2.5.6 This patch release addresses the following issues - Fixed an issue where thumbnail generation runs every night when `full-size image generation` option is enabled. - Fixed an issue where iOS is slow to start in some cases. - Fixed an issue where Android device cannot delete asset using Free Up Space feature if it has more than a few thousand assets <!-- Release notes generated using configuration in .github/release.yml at v2.5.6 --> ##### 🐛 Bug fixes - fix: enhance album sorting functionality with order handling by [@​LeLunZ](https://github.com/LeLunZ) in [#​24816](immich-app/immich#24816) - fix: add missing translations for image editor by [@​michelheusschen](https://github.com/michelheusschen) in [#​25957](immich-app/immich#25957) - fix: image and video download complete notification shows "file\_name" by [@​romoisverycool](https://github.com/romoisverycool) in [#​25975](immich-app/immich#25975) - fix: user profile refetched each time on opening app dialog by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​25992](immich-app/immich#25992) - fix: improve albums page load time on firefox by [@​michelheusschen](https://github.com/michelheusschen) in [#​26025](immich-app/immich#26025) - fix: reduce queue graph jitter and include paused count by [@​michelheusschen](https://github.com/michelheusschen) in [#​26023](immich-app/immich#26023) - fix(web): toast fixed location by [@​YarosMallorca](https://github.com/YarosMallorca) in [#​25966](immich-app/immich#25966) - fix: scroll jump when opening show & hide people by [@​michelheusschen](https://github.com/michelheusschen) in [#​25932](immich-app/immich#25932) - fix(web): display storage unit next to value instead of absolute positioning in admin user page by [@​K0lin](https://github.com/K0lin) in [#​25985](immich-app/immich#25985) - fix: iOS slow start by [@​alextran1502](https://github.com/alextran1502) in [#​26043](immich-app/immich#26043) - fix: profile dialog auto dismiss after opening on iPad by [@​alextran1502](https://github.com/alextran1502) in [#​26046](immich-app/immich#26046) - fix(web): prevent context menu from overflowing viewport by [@​ttpss930141011](https://github.com/ttpss930141011) in [#​26041](immich-app/immich#26041) - fix: slideshow setting dropdown overflow by [@​michelheusschen](https://github.com/michelheusschen) in [#​26066](immich-app/immich#26066) - fix: free up space using small batch size to reliably work on Android by [@​alextran1502](https://github.com/alextran1502) in [#​26047](immich-app/immich#26047) - fix(web): removing a person in an asset, doesn't remove the asset in … by [@​dolfje](https://github.com/dolfje) in [#​26068](immich-app/immich#26068) - fix(mobile): handle image stream completion when no image is emitted by [@​LeLunZ](https://github.com/LeLunZ) in [#​25984](immich-app/immich#25984) - fix: evict image from cache on error during image loading by [@​LeLunZ](https://github.com/LeLunZ) in [#​26078](immich-app/immich#26078) - fix(server): thumbnail queueing by [@​mertalev](https://github.com/mertalev) in [#​26077](immich-app/immich#26077) - fix: create face exif orientation handling by [@​bwees](https://github.com/bwees) in [#​26108](immich-app/immich#26108) - fix(web): refresh text by [@​jrasm91](https://github.com/jrasm91) in [#​26071](immich-app/immich#26071) - fix: correctly cancel select all assets by [@​michelheusschen](https://github.com/michelheusschen) in [#​26067](immich-app/immich#26067) - fix: person thumbnail generation on edited assets by [@​bwees](https://github.com/bwees) in [#​26112](immich-app/immich#26112) - fix: local date time group fall back by [@​alextran1502](https://github.com/alextran1502) in [#​26110](immich-app/immich#26110) ##### 📚 Documentation - feat(docs): version policy by [@​mmomjian](https://github.com/mmomjian) in [#​25979](immich-app/immich#25979) - feat(deployment): rootless compose file by [@​mmomjian](https://github.com/mmomjian) in [#​25931](immich-app/immich#25931) - docs: update ml-hardware-acceleration.md by [@​cmrtdev](https://github.com/cmrtdev) in [#​25755](immich-app/immich#25755) ##### 🌐 Translations - chore(web): update translations by [@​weblate](https://github.com/weblate) in [#​25947](immich-app/immich#25947) ##### New Contributors - [@​ttpss930141011](https://github.com/ttpss930141011) made their first contribution in [#​26041](immich-app/immich#26041) - [@​dolfje](https://github.com/dolfje) made their first contribution in [#​26068](immich-app/immich#26068) - [@​cmrtdev](https://github.com/cmrtdev) made their first contribution in [#​25755](immich-app/immich#25755) - [@​nicosemp](https://github.com/nicosemp) made their first contribution in [#​25599](immich-app/immich#25599) **Full Changelog**: <immich-app/immich@v2.5.5...v2.5.6> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Ni4yIiwidXBkYXRlZEluVmVyIjoiNDIuOTYuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: Renovate Bot <renovate@zarantonello.dev> Co-committed-by: Renovate Bot <renovate@zarantonello.dev>
##### [\`v2.5.6\`](https://github.com/immich-app/immich/releases/tag/v2.5.6) ##### v2.5.6 This patch release addresses the following issues - Fixed an issue where thumbnail generation runs every night when `full-size image generation` option is enabled. - Fixed an issue where iOS is slow to start in some cases. - Fixed an issue where Android device cannot delete asset using Free Up Space feature if it has more than a few thousand assets <!-- Release notes generated using configuration in .github/release.yml at v2.5.6 --> ##### 🐛 Bug fixes - fix: enhance album sorting functionality with order handling by [@LeLunZ](https://github.com/LeLunZ) in [#24816](immich-app/immich#24816) - fix: add missing translations for image editor by [@michelheusschen](https://github.com/michelheusschen) in [#25957](immich-app/immich#25957) - fix: image and video download complete notification shows "file\_name" by [@romoisverycool](https://github.com/romoisverycool) in [#25975](immich-app/immich#25975) - fix: user profile refetched each time on opening app dialog by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25992](immich-app/immich#25992) - fix: improve albums page load time on firefox by [@michelheusschen](https://github.com/michelheusschen) in [#26025](immich-app/immich#26025) - fix: reduce queue graph jitter and include paused count by [@michelheusschen](https://github.com/michelheusschen) in [#26023](immich-app/immich#26023) - fix(web): toast fixed location by [@YarosMallorca](https://github.com/YarosMallorca) in [#25966](immich-app/immich#25966) - fix: scroll jump when opening show & hide people by [@michelheusschen](https://github.com/michelheusschen) in [#25932](immich-app/immich#25932) - fix(web): display storage unit next to value instead of absolute positioning in admin user page by [@K0lin](https://github.com/K0lin) in [#25985](immich-app/immich#25985) - fix: iOS slow start by [@alextran1502](https://github.com/alextran1502) in [#26043](immich-app/immich#26043) - fix: profile dialog auto dismiss after opening on iPad by [@alextran1502](https://github.com/alextran1502) in [#26046](immich-app/immich#26046) - fix(web): prevent context menu from overflowing viewport by [@ttpss930141011](https://github.com/ttpss930141011) in [#26041](immich-app/immich#26041) - fix: slideshow setting dropdown overflow by [@michelheusschen](https://github.com/michelheusschen) in [#26066](immich-app/immich#26066) - fix: free up space using small batch size to reliably work on Android by [@alextran1502](https://github.com/alextran1502) in [#26047](immich-app/immich#26047) - fix(web): removing a person in an asset, doesn't remove the asset in … by [@dolfje](https://github.com/dolfje) in [#26068](immich-app/immich#26068) - fix(mobile): handle image stream completion when no image is emitted by [@LeLunZ](https://github.com/LeLunZ) in [#25984](immich-app/immich#25984) - fix: evict image from cache on error during image loading by [@LeLunZ](https://github.com/LeLunZ) in [#26078](immich-app/immich#26078) - fix(server): thumbnail queueing by [@mertalev](https://github.com/mertalev) in [#26077](immich-app/immich#26077) - fix: create face exif orientation handling by [@bwees](https://github.com/bwees) in [#26108](immich-app/immich#26108) - fix(web): refresh text by [@jrasm91](https://github.com/jrasm91) in [#26071](immich-app/immich#26071) - fix: correctly cancel select all assets by [@michelheusschen](https://github.com/michelheusschen) in [#26067](immich-app/immich#26067) - fix: person thumbnail generation on edited assets by [@bwees](https://github.com/bwees) in [#26112](immich-app/immich#26112) - fix: local date time group fall back by [@alextran1502](https://github.com/alextran1502) in [#26110](immich-app/immich#26110) ##### 📚 Documentation - feat(docs): version policy by [@mmomjian](https://github.com/mmomjian) in [#25979](immich-app/immich#25979) - feat(deployment): rootless compose file by [@mmomjian](https://github.com/mmomjian) in [#25931](immich-app/immich#25931) - docs: update ml-hardware-acceleration.md by [@cmrtdev](https://github.com/cmrtdev) in [#25755](immich-app/immich#25755) ##### 🌐 Translations - chore(web): update translations by [@weblate](https://github.com/weblate) in [#25947](immich-app/immich#25947) ##### New Contributors - [@ttpss930141011](https://github.com/ttpss930141011) made their first contribution in [#26041](immich-app/immich#26041) - [@dolfje](https://github.com/dolfje) made their first contribution in [#26068](immich-app/immich#26068) - [@cmrtdev](https://github.com/cmrtdev) made their first contribution in [#25755](immich-app/immich#25755) - [@nicosemp](https://github.com/nicosemp) made their first contribution in [#25599](immich-app/immich#25599) **Full Changelog**: <immich-app/immich@v2.5.5...v2.5.6> --- ##### [\`v2.5.5\`](https://github.com/immich-app/immich/releases/tag/v2.5.5) ##### v2.5.5 *`v2.5.4` was in the way of getting out, and we got another annoyance bug fixed, so we rolled it into `v2.5.5`* Happy Friday! This release addresses more bugs from the `v2.5.0` release. Enjoy! - Fixed an issue where changing the timezone on the web changes the time instead of the timezone - Fixed an issue where background task on iOS don't get triggered as often - Fixes some issues regarding the usage of self-signed certificate and mLTS on the mobile app ##### 🐛 Bug fixes - fix(mobile): cancel share download when dialog is dismissed by [@cmdPromptCritical](https://github.com/cmdPromptCritical) in [#25466](immich-app/immich#25466) - fix: album dto docs by [@jrasm91](https://github.com/jrasm91) in [#25873](immich-app/immich#25873) - fix: null validation by [@jrasm91](https://github.com/jrasm91) in [#25891](immich-app/immich#25891) - fix(server): deleting stacked assets by [@jrasm91](https://github.com/jrasm91) in [#25874](immich-app/immich#25874) - fix: close tag modal after tagging assets by [@michelheusschen](https://github.com/michelheusschen) in [#25884](immich-app/immich#25884) - fix: correctly sync shared link download with metadata toggle by [@michelheusschen](https://github.com/michelheusschen) in [#25885](immich-app/immich#25885) - fix: date time picker text color in dark mode by [@alextran1502](https://github.com/alextran1502) in [#25883](immich-app/immich#25883) - fix: allow null tagIds in search dto by [@michelheusschen](https://github.com/michelheusschen) in [#25920](immich-app/immich#25920) - fix: improve asset editor exit handling by [@michelheusschen](https://github.com/michelheusschen) in [#25917](immich-app/immich#25917) - fix: make switch labels properly clickable by [@michelheusschen](https://github.com/michelheusschen) in [#25898](immich-app/immich#25898) - fix: ensure theme stays in sync with [@immich/ui](https://github.com/immich/ui) by [@michelheusschen](https://github.com/michelheusschen) in [#25922](immich-app/immich#25922) - fix: preserve hidden people state across pagination by [@michelheusschen](https://github.com/michelheusschen) in [#25886](immich-app/immich#25886) - fix: file name search label by [@alextran1502](https://github.com/alextran1502) in [#25916](immich-app/immich#25916) - fix(mobile): mtls on native clients by [@mertalev](https://github.com/mertalev) in [#25802](immich-app/immich#25802) - fix: time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#25889](immich-app/immich#25889) - fix(web): Ensure profile picture is cropped to 1:1 ratio by [@aditya-ai-architect](https://github.com/aditya-ai-architect) in [#25892](immich-app/immich#25892) - fix(mobile): reset asset index on timeline refresh by [@uhthomas](https://github.com/uhthomas) in [#25729](immich-app/immich#25729) - fix: timezone in timeline bucketing by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25894](immich-app/immich#25894) - fix(mobile): Update preview and PageController position when the asset count decreases while the last item is selected by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25563](immich-app/immich#25563) - fix(server): use provided database username for restore & ensure name is not mangled by [@insertish](https://github.com/insertish) in [#25679](immich-app/immich#25679) - fix: image download complete notification shows an extra {file\_name} template tag by [@romoisverycool](https://github.com/romoisverycool) in [#25936](immich-app/immich#25936) - fix: face and edit handling by [@bwees](https://github.com/bwees) in [#25738](immich-app/immich#25738) - fix: queue assets missing fullsize files for thumbnail regeneration by [@midzelis](https://github.com/midzelis) in [#25794](immich-app/immich#25794) - fix: dedupe version announcement modal by [@jrasm91](https://github.com/jrasm91) in [#25946](immich-app/immich#25946) - fix(cli): suppress startup messages for immich-admin by [@VahantSharma](https://github.com/VahantSharma) in [#25928](immich-app/immich#25928) ##### 📚 Documentation - docs: update manual backup/restore to match the automatic process by [@insertish](https://github.com/insertish) in [#25924](immich-app/immich#25924) - fix(docs): add missing --json-output arg to CLI example by [@Xiol](https://github.com/Xiol) in [#25870](immich-app/immich#25870) - docs: remove writeTimeout on traefik example by [@kaysond](https://github.com/kaysond) in [#25837](immich-app/immich#25837) ##### 🌐 Translations - chore(web): update translations by [@weblate](https://github.com/weblate) in [#25585](immich-app/immich#25585) ##### New Contributors - [@aditya-ai-architect](https://github.com/aditya-ai-architect) made their first contribution in [#25892](immich-app/immich#25892) - [@VahantSharma](https://github.com/VahantSharma) made their first contribution in [#25927](immich-app/immich#25927) - [@Xiol](https://github.com/Xiol) made their first contribution in [#25870](immich-app/immich#25870) - [@cmdPromptCritical](https://github.com/cmdPromptCritical) made their first contribution in [#25466](immich-app/immich#25466) - [@romoisverycool](https://github.com/romoisverycool) made their first contribution in [#25936](immich-app/immich#25936) - [@didekoning](https://github.com/didekoning) made their first contribution in [#25937](immich-app/immich#25937) **Full Changelog**: <immich-app/immich@v2.5.3...v2.5.5> --- ##### [\`v2.5.3\`](https://github.com/immich-app/immich/releases/tag/v2.5.3) ##### What's Changed ##### 🐛 Bug fixes - chore: remove random code snippet by [@jrasm91](https://github.com/jrasm91) in [#25677](immich-app/immich#25677) - fix: reset and unsaved change states in editor by [@bwees](https://github.com/bwees) in [#25588](immich-app/immich#25588) - fix: no notification if release check is disabled by [@jrasm91](https://github.com/jrasm91) in [#25688](immich-app/immich#25688) - fix(mobile): hide latest version if disabled by [@uhthomas](https://github.com/uhthomas) in [#25691](immich-app/immich#25691) - fix(web): enable asset viewer navigation across memory boundaries by [@midzelis](https://github.com/midzelis) in [#25741](immich-app/immich#25741) - fix: upload progress bar flickering by [@alextran1502](https://github.com/alextran1502) in [#25829](immich-app/immich#25829) - fix: prevent stale values in edit user form after save by [@michelheusschen](https://github.com/michelheusschen) in [#25859](immich-app/immich#25859) - fix: prevent album page get rebuilt when resuming app by [@alextran1502](https://github.com/alextran1502) in [#25862](immich-app/immich#25862) - fix: prevent backspace from accidentally triggering delete modals by [@michelheusschen](https://github.com/michelheusschen) in [#25858](immich-app/immich#25858) - fix: metadata extraction race condition by [@danieldietzler](https://github.com/danieldietzler) in [#25866](immich-app/immich#25866) - fix: reset zoom when navigating between assets by [@michelheusschen](https://github.com/michelheusschen) in [#25863](immich-app/immich#25863) ##### 📚 Documentation - docs(openapi): Add descriptions to OpenAPI specification by [@timonrieger](https://github.com/timonrieger) in [#25185](immich-app/immich#25185) - fix(docs): clarify supported vector version by [@mmomjian](https://github.com/mmomjian) in [#25753](immich-app/immich#25753) **Full Changelog**: <immich-app/immich@v2.5.2...v2.5.3>
##### [\`v2.5.6\`](https://github.com/immich-app/immich/releases/tag/v2.5.6) ##### v2.5.6 This patch release addresses the following issues - Fixed an issue where thumbnail generation runs every night when `full-size image generation` option is enabled. - Fixed an issue where iOS is slow to start in some cases. - Fixed an issue where Android device cannot delete asset using Free Up Space feature if it has more than a few thousand assets <!-- Release notes generated using configuration in .github/release.yml at v2.5.6 --> ##### 🐛 Bug fixes - fix: enhance album sorting functionality with order handling by [@LeLunZ](https://github.com/LeLunZ) in [#24816](immich-app/immich#24816) - fix: add missing translations for image editor by [@michelheusschen](https://github.com/michelheusschen) in [#25957](immich-app/immich#25957) - fix: image and video download complete notification shows "file\_name" by [@romoisverycool](https://github.com/romoisverycool) in [#25975](immich-app/immich#25975) - fix: user profile refetched each time on opening app dialog by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25992](immich-app/immich#25992) - fix: improve albums page load time on firefox by [@michelheusschen](https://github.com/michelheusschen) in [#26025](immich-app/immich#26025) - fix: reduce queue graph jitter and include paused count by [@michelheusschen](https://github.com/michelheusschen) in [#26023](immich-app/immich#26023) - fix(web): toast fixed location by [@YarosMallorca](https://github.com/YarosMallorca) in [#25966](immich-app/immich#25966) - fix: scroll jump when opening show & hide people by [@michelheusschen](https://github.com/michelheusschen) in [#25932](immich-app/immich#25932) - fix(web): display storage unit next to value instead of absolute positioning in admin user page by [@K0lin](https://github.com/K0lin) in [#25985](immich-app/immich#25985) - fix: iOS slow start by [@alextran1502](https://github.com/alextran1502) in [#26043](immich-app/immich#26043) - fix: profile dialog auto dismiss after opening on iPad by [@alextran1502](https://github.com/alextran1502) in [#26046](immich-app/immich#26046) - fix(web): prevent context menu from overflowing viewport by [@ttpss930141011](https://github.com/ttpss930141011) in [#26041](immich-app/immich#26041) - fix: slideshow setting dropdown overflow by [@michelheusschen](https://github.com/michelheusschen) in [#26066](immich-app/immich#26066) - fix: free up space using small batch size to reliably work on Android by [@alextran1502](https://github.com/alextran1502) in [#26047](immich-app/immich#26047) - fix(web): removing a person in an asset, doesn't remove the asset in … by [@dolfje](https://github.com/dolfje) in [#26068](immich-app/immich#26068) - fix(mobile): handle image stream completion when no image is emitted by [@LeLunZ](https://github.com/LeLunZ) in [#25984](immich-app/immich#25984) - fix: evict image from cache on error during image loading by [@LeLunZ](https://github.com/LeLunZ) in [#26078](immich-app/immich#26078) - fix(server): thumbnail queueing by [@mertalev](https://github.com/mertalev) in [#26077](immich-app/immich#26077) - fix: create face exif orientation handling by [@bwees](https://github.com/bwees) in [#26108](immich-app/immich#26108) - fix(web): refresh text by [@jrasm91](https://github.com/jrasm91) in [#26071](immich-app/immich#26071) - fix: correctly cancel select all assets by [@michelheusschen](https://github.com/michelheusschen) in [#26067](immich-app/immich#26067) - fix: person thumbnail generation on edited assets by [@bwees](https://github.com/bwees) in [#26112](immich-app/immich#26112) - fix: local date time group fall back by [@alextran1502](https://github.com/alextran1502) in [#26110](immich-app/immich#26110) ##### 📚 Documentation - feat(docs): version policy by [@mmomjian](https://github.com/mmomjian) in [#25979](immich-app/immich#25979) - feat(deployment): rootless compose file by [@mmomjian](https://github.com/mmomjian) in [#25931](immich-app/immich#25931) - docs: update ml-hardware-acceleration.md by [@cmrtdev](https://github.com/cmrtdev) in [#25755](immich-app/immich#25755) ##### 🌐 Translations - chore(web): update translations by [@weblate](https://github.com/weblate) in [#25947](immich-app/immich#25947) ##### New Contributors - [@ttpss930141011](https://github.com/ttpss930141011) made their first contribution in [#26041](immich-app/immich#26041) - [@dolfje](https://github.com/dolfje) made their first contribution in [#26068](immich-app/immich#26068) - [@cmrtdev](https://github.com/cmrtdev) made their first contribution in [#25755](immich-app/immich#25755) - [@nicosemp](https://github.com/nicosemp) made their first contribution in [#25599](immich-app/immich#25599) **Full Changelog**: <immich-app/immich@v2.5.5...v2.5.6> --- ##### [\`v2.5.5\`](https://github.com/immich-app/immich/releases/tag/v2.5.5) ##### v2.5.5 *`v2.5.4` was in the way of getting out, and we got another annoyance bug fixed, so we rolled it into `v2.5.5`* Happy Friday! This release addresses more bugs from the `v2.5.0` release. Enjoy! - Fixed an issue where changing the timezone on the web changes the time instead of the timezone - Fixed an issue where background task on iOS don't get triggered as often - Fixes some issues regarding the usage of self-signed certificate and mLTS on the mobile app ##### 🐛 Bug fixes - fix(mobile): cancel share download when dialog is dismissed by [@cmdPromptCritical](https://github.com/cmdPromptCritical) in [#25466](immich-app/immich#25466) - fix: album dto docs by [@jrasm91](https://github.com/jrasm91) in [#25873](immich-app/immich#25873) - fix: null validation by [@jrasm91](https://github.com/jrasm91) in [#25891](immich-app/immich#25891) - fix(server): deleting stacked assets by [@jrasm91](https://github.com/jrasm91) in [#25874](immich-app/immich#25874) - fix: close tag modal after tagging assets by [@michelheusschen](https://github.com/michelheusschen) in [#25884](immich-app/immich#25884) - fix: correctly sync shared link download with metadata toggle by [@michelheusschen](https://github.com/michelheusschen) in [#25885](immich-app/immich#25885) - fix: date time picker text color in dark mode by [@alextran1502](https://github.com/alextran1502) in [#25883](immich-app/immich#25883) - fix: allow null tagIds in search dto by [@michelheusschen](https://github.com/michelheusschen) in [#25920](immich-app/immich#25920) - fix: improve asset editor exit handling by [@michelheusschen](https://github.com/michelheusschen) in [#25917](immich-app/immich#25917) - fix: make switch labels properly clickable by [@michelheusschen](https://github.com/michelheusschen) in [#25898](immich-app/immich#25898) - fix: ensure theme stays in sync with [@immich/ui](https://github.com/immich/ui) by [@michelheusschen](https://github.com/michelheusschen) in [#25922](immich-app/immich#25922) - fix: preserve hidden people state across pagination by [@michelheusschen](https://github.com/michelheusschen) in [#25886](immich-app/immich#25886) - fix: file name search label by [@alextran1502](https://github.com/alextran1502) in [#25916](immich-app/immich#25916) - fix(mobile): mtls on native clients by [@mertalev](https://github.com/mertalev) in [#25802](immich-app/immich#25802) - fix: time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#25889](immich-app/immich#25889) - fix(web): Ensure profile picture is cropped to 1:1 ratio by [@aditya-ai-architect](https://github.com/aditya-ai-architect) in [#25892](immich-app/immich#25892) - fix(mobile): reset asset index on timeline refresh by [@uhthomas](https://github.com/uhthomas) in [#25729](immich-app/immich#25729) - fix: timezone in timeline bucketing by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#25894](immich-app/immich#25894) - fix(mobile): Update preview and PageController position when the asset count decreases while the last item is selected by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25563](immich-app/immich#25563) - fix(server): use provided database username for restore & ensure name is not mangled by [@insertish](https://github.com/insertish) in [#25679](immich-app/immich#25679) - fix: image download complete notification shows an extra {file\_name} template tag by [@romoisverycool](https://github.com/romoisverycool) in [#25936](immich-app/immich#25936) - fix: face and edit handling by [@bwees](https://github.com/bwees) in [#25738](immich-app/immich#25738) - fix: queue assets missing fullsize files for thumbnail regeneration by [@midzelis](https://github.com/midzelis) in [#25794](immich-app/immich#25794) - fix: dedupe version announcement modal by [@jrasm91](https://github.com/jrasm91) in [#25946](immich-app/immich#25946) - fix(cli): suppress startup messages for immich-admin by [@VahantSharma](https://github.com/VahantSharma) in [#25928](immich-app/immich#25928) ##### 📚 Documentation - docs: update manual backup/restore to match the automatic process by [@insertish](https://github.com/insertish) in [#25924](immich-app/immich#25924) - fix(docs): add missing --json-output arg to CLI example by [@Xiol](https://github.com/Xiol) in [#25870](immich-app/immich#25870) - docs: remove writeTimeout on traefik example by [@kaysond](https://github.com/kaysond) in [#25837](immich-app/immich#25837) ##### 🌐 Translations - chore(web): update translations by [@weblate](https://github.com/weblate) in [#25585](immich-app/immich#25585) ##### New Contributors - [@aditya-ai-architect](https://github.com/aditya-ai-architect) made their first contribution in [#25892](immich-app/immich#25892) - [@VahantSharma](https://github.com/VahantSharma) made their first contribution in [#25927](immich-app/immich#25927) - [@Xiol](https://github.com/Xiol) made their first contribution in [#25870](immich-app/immich#25870) - [@cmdPromptCritical](https://github.com/cmdPromptCritical) made their first contribution in [#25466](immich-app/immich#25466) - [@romoisverycool](https://github.com/romoisverycool) made their first contribution in [#25936](immich-app/immich#25936) - [@didekoning](https://github.com/didekoning) made their first contribution in [#25937](immich-app/immich#25937) **Full Changelog**: <immich-app/immich@v2.5.3...v2.5.5> --- ##### [\`v2.5.3\`](https://github.com/immich-app/immich/releases/tag/v2.5.3) ##### What's Changed ##### 🐛 Bug fixes - chore: remove random code snippet by [@jrasm91](https://github.com/jrasm91) in [#25677](immich-app/immich#25677) - fix: reset and unsaved change states in editor by [@bwees](https://github.com/bwees) in [#25588](immich-app/immich#25588) - fix: no notification if release check is disabled by [@jrasm91](https://github.com/jrasm91) in [#25688](immich-app/immich#25688) - fix(mobile): hide latest version if disabled by [@uhthomas](https://github.com/uhthomas) in [#25691](immich-app/immich#25691) - fix(web): enable asset viewer navigation across memory boundaries by [@midzelis](https://github.com/midzelis) in [#25741](immich-app/immich#25741) - fix: upload progress bar flickering by [@alextran1502](https://github.com/alextran1502) in [#25829](immich-app/immich#25829) - fix: prevent stale values in edit user form after save by [@michelheusschen](https://github.com/michelheusschen) in [#25859](immich-app/immich#25859) - fix: prevent album page get rebuilt when resuming app by [@alextran1502](https://github.com/alextran1502) in [#25862](immich-app/immich#25862) - fix: prevent backspace from accidentally triggering delete modals by [@michelheusschen](https://github.com/michelheusschen) in [#25858](immich-app/immich#25858) - fix: metadata extraction race condition by [@danieldietzler](https://github.com/danieldietzler) in [#25866](immich-app/immich#25866) - fix: reset zoom when navigating between assets by [@michelheusschen](https://github.com/michelheusschen) in [#25863](immich-app/immich#25863) ##### 📚 Documentation - docs(openapi): Add descriptions to OpenAPI specification by [@timonrieger](https://github.com/timonrieger) in [#25185](immich-app/immich#25185) - fix(docs): clarify supported vector version by [@mmomjian](https://github.com/mmomjian) in [#25753](immich-app/immich#25753) **Full Changelog**: <immich-app/immich@v2.5.2...v2.5.3> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Description
In my recent testing for PR #25984 I noticed that images that failed loading, could never be loaded correctly. In the timeline they always showed up as Thumbhash, and the Thumbnail never finished loading. Even when switching to albums and then going back to the asset viewer.
Or if a thumbnail was already cached/working, I clicked on it. The asset viewer loaded, and for some reason the actual image request failed, the thumbnail was shown instead (as intended).
When closing the asset viewer, and clicking on the same image again, it doesn't start show the image thumbnail like before, but a grey background.
The Issue:
If in the
CancellableImageProviderMixin.loadRequesttheawait request.load(decode);throws for whatever reason, the error is propagated to the listeners but the cache for the entry is never cleared.That means,
ImageProvider.resolvewill actually resolve to that erroring cached ImageStreamCompleter and the cache entry is never cleared.The thing is from my understanding
await request.load(decode)could throw for a lot of networking reasons, so I think its better to clear the cache from this entry, and try to load the image again if it is requested again.In this PR: When an error happens while loading the image, we remove it from the cache, and then the error is propagated like before.
Also, I am not sure but this could help with issues such as #25662 ?
How Has This Been Tested?
Checklist:
src/services/uses repositories implementations for database calls, filesystem operations, etc.src/repositories/is pretty basic/simple and does not have any immich specific logic (that belongs insrc/services/)Please describe to which degree, if any, an LLM was used in creating this pull request.