Baseflow / Baseflow/flutter_cached_network_image
If loading an image fails with maxHeightDiskCache specified, errorWidget will not be called next time.
- Dominant language
- Dart
- Stars
- 2.6k
- Forks
- 731
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 1
Description
## 🐛 Bug Report
As the title says, if CachedNetworkImage with maxHeightDiskCache (or maxWidthDiskCache) fails to load an image (403, etc.), errorWidget is called the first time, but not the next time.
I think it is probably due to the fact that the image that failed to load is cached, but is there a solution?
I would like to add that I have tried deleting the cache, but it is not possible to do so.
Thanks for the answer.
### Expected behavior
Images that fail to load are not cached.
### Reproduction steps
```dart
return CachedNetworkImage(
imageUrl: path, // Path of the image that results in a 403 error
width: 128,
height: 128,
maxWidthDiskCache: 128,
maxHeightDiskCache: 128,
errorWidget: (context, url, error) {
// First time through, but after that it goes through.
return const SizedBox.shrink();
},
placeholder: (context, url) {
// errorWidget is not called, so it is here to stay
return const CircularProgressIndicator();
},
imageBuilder: (context, imageProvider) {
// omission
},
errorListener: (value) async {
// It tries to delete the cache, but it is always false.
final result = CachedNetworkImage.evictFromCache(path);
print('delete cache: $result'); // delete cache: false
},
);
```
### Configuration
**Version:**
- Flutter: 3.24.3
- cached_network_image: 3.4.1
**Platform:**
- [x] :iphone: iOS
- [x] :robot: Android
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.