Baseflow / Baseflow/flutter_cache_manager

[Bug] Getting "HttpException: Invalid statusCode: 403" error

Open
#366 3 comments 2 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
809
Forks
510
Avg merge
6m
Merged PRs (30d)
1

Description

## 🐛 Bug Report - Getting "HttpException: Invalid statusCode: 403" error

### Expected behavior
- I am trying to cache a video file from an open https url:
- - [https://cdn-animation.artstation.com/p/video_sources/000/629/776/shield-05-video.mp4]()
- **The error:** `HttpException: Invalid statusCode: 403`
- As far as I know, no headers are needed for that url.
- The file size is 13.4 MB.
- I will then use that cached file for playing videos from URLs.
- Actually, I am already doing that and it works as expected for this video url:
- - [https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4]()
- **Important:** Even though I can't cache the video from the 1st url I provided, the Video Player plugin can successfully play it. So the url is working indeed.

### The code is long but here are the important part.
```dart
FileInfo? _fileInfo;
DefaultCacheManager _cacheManager = DefaultCacheManager();

_fileInfo = await _cacheManager.downloadFile(videoUrl, force: true);
// Also tried with --> force: false
// I use *await* but I know it is optional, in my case I need that.

if (_fileInfo == null) {
videoPlayerController = VideoPlayerController.network(videoUrl);
// When the file cannot be cached, the video is played from .network()
} else {
videoPlayerController = VideoPlayerController.file(_fileInfo.file);
// When the file is cached, the video is played from .file()
}
```

### I have also tried adding the key for allowing arbitrary loads on iOS --> NSAllowsArbitraryLoads
```
NSAppTransportSecurity

NSAllowsArbitraryLoads

```

### Version:
**flutter:** `2.10.1`
**flutter_cache_manager:** `^3.3.0`

### Platform:
- iOS (both device and simulator) - (tried on different iPhones) - (tried on release - debug modes)

Contributor guide

Open the contributing guide

Research direction

No repository file or test is named. Start with the downloadFile call in the report and trace how the cache manager handles the provided ArtStation URL's HTTP response, then compare it with the Flutter sample video URL on iOS. Done means reproducing the 403 behavior and establishing the appropriate cache-manager behavior for that response.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart, flutter
Domain
mobile-dev, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.