flutter_staggered_grid_view icon indicating copy to clipboard operation
flutter_staggered_grid_view copied to clipboard

Bad state: No element.

Open timobaehr opened this issue 3 years ago • 0 comments

I'm facing the following error tracked via Crashlytics:

Non-fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Bad state: No element. Error thrown Instance of 'ErrorDescription'.
       at ListMixin.reduce(ListMixin.java)
       at RenderSliverMasonryGrid.performLayout(sliver_masonry_grid.dart:502)
       at RenderObject.layout(object.dart:2135)
       at RenderSliverEdgeInsetsPadding.performLayout(sliver_padding.dart:149)
       at RenderSliverPadding.performLayout(sliver_padding.dart:386)
       at RenderObject.layout(object.dart:2135)
       at RenderViewportBase.layoutChildSequence(viewport.dart:516)
       at RenderShrinkWrappingViewport._attemptLayout(viewport.dart:1960)
       at RenderShrinkWrappingViewport.performLayout(viewport.dart:1905)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderCustomPaint.performLayout(custom_paint.dart:552)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderProxyBoxMixin.performLayout(proxy_box.dart:120)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderConstrainedBox.performLayout(proxy_box.dart:292)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at _RenderLayoutBuilder.performLayout(layout_builder.dart:318)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at ChildLayoutHelper.layoutChild(layout_helper.dart:56)
       at RenderFlex._computeSizes(flex.dart:836)
       at RenderFlex.performLayout(flex.dart:938)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderPadding.performLayout(shifted_box.dart:249)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at ChildLayoutHelper.layoutChild(layout_helper.dart:56)
       at RenderFlex._computeSizes(flex.dart:836)
       at RenderFlex.performLayout(flex.dart:938)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderConstrainedBox.performLayout(proxy_box.dart:292)
       at RenderObject.layout(object.dart:2135)
       at RenderBox.layout(box.dart:2418)
       at RenderSliverToBoxAdapter.performLayout(sliver.dart:1814)
       at RenderObject.layout(object.dart:2135)
       at RenderViewportBase.layoutChildSequence(viewport.dart:516)
       at RenderViewport._attemptLayout(viewport.dart:1600)
       at RenderViewport.performLayout(viewport.dart:1507)
       at RenderObject._layoutWithoutResize(object.dart:1973)
       at PipelineOwner.flushLayout(object.dart:999)
       at RendererBinding.drawFrame(binding.dart:513)
       at WidgetsBinding.drawFrame(binding.dart:884)
       at RendererBinding._handlePersistentFrameCallback(binding.dart:378)
       at SchedulerBinding._invokeFrameCallback(binding.dart:1175)
       at SchedulerBinding.handleDrawFrame(binding.dart:1104)
       at SchedulerBinding._handleDrawFrame(binding.dart:1015)

RenderSliverMasonryGrid:

    // Here, earliestUsefulChild is still the first child, it's got a
    // scrollOffset that is at or before our actual scrollOffset, and it has
    // been laid out, and is in fact our leadingChildWithLayout. It's possible
    // that some children beyond that one have also been laid out.
    final leadingScrollOffset = scrollOffsets.reduce(math.min);

Stackoverflow says:

This will happen when there is no matching element, i.e. when a == b is never true for any of the elements in list and the optional parameter orElse is not specified.

Bug is reported, I never saw this myself. Around 3% of my users are affected.

I'm using latest version 0.6.2.

timobaehr avatar Oct 03 '22 07:10 timobaehr