Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hot reload cannot recover from sliver error #133532

Open
2 tasks done
mattermoran opened this issue Aug 29, 2023 · 7 comments
Open
2 tasks done

Hot reload cannot recover from sliver error #133532

mattermoran opened this issue Aug 29, 2023 · 7 comments
Labels
f: scrolling Viewports, list views, slivers, etc. found in release: 3.13 Found to occur in 3.13 found in release: 3.14 Found to occur in 3.14 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on P3 Issues that are less important to the Flutter project t: hot reload Reloading code during "flutter run" team-tool Owned by Flutter Tool team triaged-tool Triaged by Flutter Tool team

Comments

@mattermoran
Copy link

Is there an existing issue for this?

Steps to reproduce

  1. Add CustomScrollView
  2. Add a child that not a sliver e.g Container
  3. Save and hot reload
  4. Wrap that container into SliverToBoxAdapter

Expected results

The error disappears and can continue coding as usual

Actual results

The error keeps saying Failed assertion: line 6426 pos 12: 'child == _child': is not true. and does not go away until hot restart.

Code sample

Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Sliver error'),
        ),
        body: CustomScrollView(
          slivers: [
            Container(),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Untitled.1.mp4

Logs

Logs
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building
RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#431d2](state:
RawGestureDetectorState#49d38(gestures: [vertical drag], behavior: opaque)):
'package:flutter/src/widgets/framework.dart': Failed assertion: line 1969 pos 12:
'element._lifecycleState == _ElementLifecycle.active': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially
more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.yml

The relevant error-causing widget was:
  CustomScrollView
  CustomScrollView:file:///Users/alexmiller/projects/temp/sliver_error/lib/main.dart:17:15

When the exception was thrown, this was the stack:
#2      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1969:12)
#3      MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6532:16)
#4      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#5      SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6420:14)
#6      _InactiveElements._deactivateRecursively (package:flutter/src/widgets/framework.dart:1972:13)
#7      _InactiveElements.add (package:flutter/src/widgets/framework.dart:1984:7)
#8      Element.deactivateChild (package:flutter/src/widgets/framework.dart:4224:30)
#9      Element._retakeInactiveElement (package:flutter/src/widgets/framework.dart:4119:14)
...     Normal element mounting (10 frames)
#19     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4182:16)
#20     Element.updateChild (package:flutter/src/widgets/framework.dart:3701:20)
#21     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#22     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#23     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#24     StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#25     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#26     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#27     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#28     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#29     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#30     ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#31     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#32     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#33     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#34     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#35     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#36     ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#37     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#38     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#39     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#40     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#41     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#42     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#43     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#44     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#45     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#46     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#47     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#48     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#49     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#50     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#51     StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#52     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#53     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#54     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#55     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#56     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#57     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#58     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#59     ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#60     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#62     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#63     ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#64     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#65     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#66     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#67     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#68     StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#69     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#70     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#71     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#72     StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#73     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#74     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#75     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#76     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#77     StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#78     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#79     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#80     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#81     StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#82     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#83     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#84     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#85     StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#86     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#87     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#88     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#89     StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#90     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#91     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#92     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#93     ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#94     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#95     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#96     Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#97     ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#98     Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#99     Element.updateChildren (package:flutter/src/widgets/framework.dart:3834:32)
#100    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6594:17)
#101    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#102    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#103    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#104    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#105    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#106    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#107    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#108    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#109    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#110    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#111    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#112    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#113    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#114    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#115    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#116    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#117    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#118    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#119    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#120    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#121    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#122    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#123    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#124    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#125    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#126    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#127    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#128    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#129    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#130    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#131    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#132    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#133    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#134    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#135    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#136    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#137    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#138    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#139    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#140    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#141    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#142    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#143    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#144    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#145    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#146    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#147    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#148    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#149    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#150    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#151    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#152    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#153    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#154    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#155    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#156    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#157    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#158    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#159    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#160    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#161    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#162    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#163    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#164    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#165    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#166    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#167    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#168    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#169    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#170    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#171    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#172    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#173    StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#174    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#175    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#176    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#177    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#178    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#179    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#180    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#181    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#182    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#183    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#184    Element.updateChildren (package:flutter/src/widgets/framework.dart:3834:32)
#185    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6594:17)
#186    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#187    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#188    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#189    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#190    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#191    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#192    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#193    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#194    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#195    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#196    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#197    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#198    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#199    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#200    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#201    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#202    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#203    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#204    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#205    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#206    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#207    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#208    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#209    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#210    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#211    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#212    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#213    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#214    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#215    StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#216    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#217    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#218    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#219    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#220    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#221    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#222    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#223    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#224    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#225    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#226    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#227    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#228    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#229    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#230    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#231    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#232    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#233    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#234    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#235    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#236    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#237    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#238    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#239    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#240    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#241    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#242    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#243    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#244    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#245    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#246    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#247    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#248    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#249    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#250    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#251    StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#252    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#253    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#254    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#255    StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#256    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#257    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#258    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#259    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#260    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#261    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#262    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#263    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#264    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#265    ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#266    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#267    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#268    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#269    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#270    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#271    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#272    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#273    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#274    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#275    StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#276    Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#277    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#278    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#279    Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#280    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2779:19)
#281    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:916:21)
#282    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:360:5)
#283    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1297:15)
#284    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1227:9)
#285    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:952:7)
#289    _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12)
(elided 5 frames from class _AssertionError, class _Timer, and dart:async-patch)

════════════════════════════════════════════════════════════════════════════════════════════════════

Another exception was thrown: Duplicate GlobalKey detected in widget tree.

Flutter Doctor output

Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.1, on macOS 14.0 23A5328b darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
[✓] Chrome - develop for the web
[!] Android Studio (version unknown)
    ✗ Unable to determine Android Studio version.
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.81.1)
[✓] VS Code (version 1.82.0-insider)
[✓] Connected device (3 available)
[✓] Network resources

! Doctor found issues in 1 category.
@darshankawar darshankawar added the in triage Presently being triaged by the triage team label Aug 29, 2023
@darshankawar
Copy link
Member

Thanks for the report @mattermoran

  • Add CustomScrollView
  • Add a child that not a sliver e.g Container

This may not be an ideal implementation, ie, to have a non-sliver widget inside a sliver widget. If you are using CustomScrollView which is a sliver widget in itself, it also expects slivers as it takes slivers as children.

If in your case, you used a non-sliver, ie, Container, then it order for this widget structure / implementation to work, you'll need to use SliverToBoxAdapter as you mentioned, as, per its documentation:

Slivers are special-purpose widgets that can be combined using a CustomScrollView to create custom scroll effects, ie, if you are using a non-sliver widget inside a sliver, in order for it to work properly and it helps to allow adding of non-sliver widgets inside the CustomScrollView widget and that's why adding this sliver gets rid of the error as you mentioned.

So the solution you mentioned, to wrap non-sliver with SliverToBoxAdapter is correct.

@darshankawar darshankawar added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Aug 29, 2023
@mattermoran
Copy link
Author

Hey @darshankawar
I think you misunderstood what I mean here, let me explain :)

The issue is not that RenderBox is not allowed in a place of slivers but the fact that changing it back to sliver does not go back to a working state after hot reload and only hot restart helps which restarts the whole thing.
I'm working a lot with CustomScrollViews and once in a while I accidentally forget to wrap RenderBox into SliverToBoxAdapter which means now I have to restart the whole thing and it's especially annoying when the page is many levels deep in the routing.

Basically what I'm saying is that I would the error to go away after fixing the mistake without having to restart the app.

@github-actions github-actions bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Aug 29, 2023
@darshankawar
Copy link
Member

Thanks for the feedback. I do see the same reported behavior using latest stable and master versions.
Running the code as-is throws below error:

======== Exception caught by widgets library =======================================================
The following assertion was thrown building Container:
A RenderViewport expected a child of type RenderSliver but received a child of type RenderLimitedBox.

Upon wrapping Container with SliverToBoxAdapter and then hot reloading throws below error:

======== Exception caught by widgets library =======================================================
The following assertion was thrown building RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#47d5a](state: RawGestureDetectorState#eb2ec(gestures: <none>, behavior: opaque)):
'package:flutter/src/widgets/framework.dart': Failed assertion: line 6627 pos 12: 'child == _child': is not true.

Whereas, the expected behavior per OP is hot reload shouldn't throw above error and currently need to hot restart the app.

Maybe related ? #94416

stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.13.1, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.13.1 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e1e47221e8 (2 days ago), 2023-08-22 21:43:18 -0700
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.14.0-12.0.pre.107, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.14.0-12.0.pre.107 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 56ea352cc0 (2 hours ago), 2023-08-29 21:00:10 -0700
    • Engine revision 69f04bdfe9
    • Dart version 3.2.0 (build 3.2.0-122.0.dev)
    • DevTools version 2.26.2
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.
      
[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.



@darshankawar darshankawar added framework flutter/packages/flutter repository. See also f: labels. t: hot reload Reloading code during "flutter run" f: scrolling Viewports, list views, slivers, etc. has reproducible steps The issue has been confirmed reproducible and is ready to work on team-framework Owned by Framework team found in release: 3.13 Found to occur in 3.13 found in release: 3.14 Found to occur in 3.14 and removed in triage Presently being triaged by the triage team labels Aug 30, 2023
@Piinks Piinks added triaged-framework Triaged by Framework team fyi-framework For the attention of Framework team team-tool Owned by Flutter Tool team and removed team-framework Owned by Framework team labels Aug 30, 2023
@Piinks
Copy link
Contributor

Piinks commented Aug 30, 2023

cc'ing team-tool, not sure if we can gracefully recover this case through hot reload.

@flutter-triage-bot flutter-triage-bot bot removed fyi-framework For the attention of Framework team triaged-framework Triaged by Framework team labels Sep 1, 2023
@christopherfujino
Copy link
Member

cc'ing team-tool, not sure if we can gracefully recover this case through hot reload.

@Piinks is the assertion happening after the hot reload, on the second build?

@Piinks
Copy link
Contributor

Piinks commented Sep 11, 2023

Yeah. So on the first build it throws because the child is the wrong type, and then changing the child to the right type and hot reloading is where is fails to recover.

@christopherfujino christopherfujino added P3 Issues that are less important to the Flutter project triaged-tool Triaged by Flutter Tool team labels Sep 12, 2023
@yendiscart
Copy link

(package:flutter/src/widgets/framework.dart:5016:7)
#22 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#23 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#24 Element.updateChildren (package:flutter/src/widgets/framework.dart:3834:32)
#25 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6594:17)
#26 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#27 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#28 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#29 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#30 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#31 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#32 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#33 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#34 StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#35 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#36 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#37 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#38 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#39 StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#40 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#41 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#42 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#43 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#44 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#45 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#46 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#47 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#48 StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#49 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#50 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#51 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#52 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#53 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#54 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#55 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#56 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#57 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#58 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#59 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#60 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#61 StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#62 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#63 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#64 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#65 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#66 StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#67 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#69 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#70 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#71 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#73 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#74 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#75 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#77 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#78 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#79 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#80 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#81 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#82 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#83 StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#84 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#85 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#86 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#87 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#88 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#89 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#90 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#91 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#92 StatefulElement.update (package:flutter/src/widgets/framework.dart:5485:5)
#93 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#94 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#95 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#96 ProxyElement.update (package:flutter/src/widgets/framework.dart:5628:5)
#97 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#98 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6441:14)
#99 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#100 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#101 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#102 StatelessElement.update (package:flutter/src/widgets/framework.dart:5373:5)
#103 Element.updateChild (package:flutter/src/widgets/framework.dart:3685:15)
#104 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5322:16)
#105 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462:11)
#106 Element.rebuild (package:flutter/src/widgets/framework.dart:5016:7)
#107 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2779:19)
#108 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:916:21)
#109 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:360:5)
#110 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1297:15)
#111 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1227:9)
#112 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1085:5)
#113 _invoke (dart:ui/hooks.dart:170:13)
#114 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:401:5)
#115 _drawFrame (dart:ui/hooks.dart:140:31)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
f: scrolling Viewports, list views, slivers, etc. found in release: 3.13 Found to occur in 3.13 found in release: 3.14 Found to occur in 3.14 framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on P3 Issues that are less important to the Flutter project t: hot reload Reloading code during "flutter run" team-tool Owned by Flutter Tool team triaged-tool Triaged by Flutter Tool team
Projects
None yet
Development

No branches or pull requests

5 participants