Baseflow / Baseflow/flutter_cache_manager
Bad state: Future already completed
- Dominant language
- Dart
- Stars
- 809
- Forks
- 510
- Avg merge
- 6m
- Merged PRs (30d)
- 1
Description
Bad state: Future already completed
0 _AsyncCompleter.complete (dart:async/future_impl.dart:35:31)
#1 _decodeImage. (package:flutter_cache_manager/src/cache_managers/image_cache_manager.dart:161:15)
#2 ImageStreamCompleter.setImage (package:flutter/src/painting/image_stream.dart:655:25)
#3 MultiFrameImageStreamCompleter._emitFrame (package:flutter/src/painting/image_stream.dart:998:5)
#4 MultiFrameImageStreamCompleter._handleAppFrame (package:flutter/src/painting/image_stream.dart:922:7)
#5 MultiFrameImageStreamCompleter._handleAppFrame (package:flutter/src/painting/image_stream.dart:915:3)
#6 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)
#7 SchedulerBinding.handleBeginFrame. (package:flutter/src/scheduler/binding.dart:1140:11)
#8 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:625:13)
#9 SchedulerBinding.handleBeginFrame (package:flutter/src/scheduler/binding.dart:1138:17)
#10 SchedulerBinding._handleBeginFrame (package:flutter/src/scheduler/binding.dart:1055:5)
#11 SchedulerBinding._handleBeginFrame (package:flutter/src/scheduler/binding.dart:1046:3)
#12 _rootRunUnary (dart:async/zone.dart:1414:13)
#13 _rootRunUnary (dart:async/zone.dart:1404:1)
#14 _CustomZone.runUnary (dart:async/zone.dart:1307:19)
#15 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1216:7)
#16 _invoke1 (dart:ui/hooks.dart:166:10)
#17 PlatformDispatcher._beginFrame (dart:ui/platform_dispatcher.dart:316:5)
#18 _beginFrame (dart:ui/hooks.dart:101:31)
#19 _beginFrame (dart:ui/hooks.dart:99:1)
Contributor guide
Research direction
Start at package:flutter_cache_manager/src/cache_managers/image_cache_manager.dart:161 and trace the _decodeImage callback through Flutter's ImageStreamCompleter.setImage. Reproduce the image-loading failure if possible and determine when the same Future is completed more than once. Done means the reported stack trace no longer occurs during image decoding, with the affected behavior covered by an appropriate test if one exists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, flutter
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100