Baseflow / Baseflow/flutter_cached_network_image

If loading an image fails with maxHeightDiskCache specified, errorWidget will not be called next time.

Open
#980 4 comments 3 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.