Skip to content

Be better about catching duplicate GlobalKeys #6109

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

Closed
apwilson opened this issue Sep 27, 2016 · 8 comments · Fixed by #8593
Closed

Be better about catching duplicate GlobalKeys #6109

apwilson opened this issue Sep 27, 2016 · 8 comments · Fixed by #8593
Labels
framework flutter/packages/flutter repository. See also f: labels.

Comments

@apwilson
Copy link
Contributor

15:39:00.293: I/flutter : ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
15:39:00.296: I/flutter : The following assertion was thrown building Flexible(flex: 1):
15:39:00.300: I/flutter : scheduleBuildFor() called for a widget for which a build was already scheduled.
15:39:00.303: I/flutter : The method was called for the following element:
15:39:00.306: I/flutter :   DecoratedBox(dirty; renderObject: RenderDecoratedBox DETACHED)
15:39:00.309: I/flutter : The current dirty list consists of:
15:39:00.312: I/flutter :   [DecoratedBox(dirty; renderObject: RenderDecoratedBox DETACHED), RawGestureDetector(state:
15:39:00.315: I/flutter :   RawGestureDetectorState(192277613; gestures: tap; behavior: opaque)), Text("Suggestion Ichi";
15:39:00.318: I/flutter :   inherit: true; color: Color(0xffffffff); size: 16.0; letterSpacing: 1.92x; height: 1.5x),
15:39:00.321: I/flutter :   Image(image: AssetImage(bundle: null, name: packages/armadillo/res/flutter-mark-square-100.png);
15:39:00.324: I/flutter :   color: Color(0xffffffff); fit: ImageFit.cover; state: _ImageState(623862140; stream:
15:39:00.327: I/flutter :   ImageStream(OneFrameImageStreamCompleter; [100×100] @ 1.0x; 65 listeners); pixels: [100×100] @
15:39:00.330: I/flutter :   1.0x)), Image(image: AssetImage(bundle: null, name: packages/armadillo/res/Armadillo.png); fit:
15:39:00.333: I/flutter :   ImageFit.cover; state: _ImageState(435251538; stream: ImageStream(OneFrameImageStreamCompleter;
15:39:00.336: I/flutter :   [1230×1230] @ 1.0x; 25 listeners); pixels: [1230×1230] @ 1.0x)), DecoratedBox(renderObject:
15:39:00.340: I/flutter :   RenderDecoratedBox), RawGestureDetector(state: RawGestureDetectorState(604374343; gestures: tap;
15:39:00.342: I/flutter :   behavior: opaque)), Text("Suggestion Ni"; inherit: true; color: Color(0xffffffff); size: 16.0;
15:39:00.345: I/flutter :   letterSpacing: 1.92x; height: 1.5x), Image(image: AssetImage(bundle: null, name:
15:39:00.348: I/flutter :   packages/armadillo/res/flutter-mark-square-100.png); color: Color(0xffffffff); fit:
15:39:00.351: I/flutter :   ImageFit.cover; state: _ImageState(460373810; stream: ImageStream(OneFrameImageStreamCompleter;
15:39:00.353: I/flutter :   [100×100] @ 1.0x; 65 listeners); pixels: [100×100] @ 1.0x)), Image(image: AssetImage(bundle: null,
15:39:00.356: I/flutter :   name: packages/armadillo/res/Armadillo.png); fit: ImageFit.cover; state: _ImageState(224197766;
15:39:00.359: I/flutter :   stream: ImageStream(OneFrameImageStreamCompleter; [1230×1230] @ 1.0x; 25 listeners); pixels:
15:39:00.362: I/flutter :   [1230×1230] @ 1.0x))]
15:39:00.364: I/flutter : This usually indicates that a widget was rebuilt outside the build phase (thus marking the element
15:39:00.367: I/flutter : as clean even though it is still in the dirty list). This should not be possible and is probably
15:39:00.370: I/flutter : caused by a bug in the widgets framework. Please report it:
15:39:00.373: I/flutter : https://github.com/flutter/flutter/issues/new
15:39:00.376: I/flutter : To debug this issue, consider setting the debugPrintScheduleBuildForStacks and
15:39:00.379: I/flutter : debugPrintBuildDirtyElements flags to true and looking for a call to scheduleBuildFor for a widget
15:39:00.382: I/flutter : that is labeled "ALREADY IN LIST".
15:39:00.642: I/flutter :
15:39:00.646: I/flutter : When the exception was thrown, this was the stack:
15:39:00.659: I/flutter : #0      BuildOwner.scheduleBuildFor.<anonymous closure> (package:flutter/src/widgets/framework.dart:1522:9)
15:39:00.662: I/flutter : #2      BuildOwner.scheduleBuildFor (package:flutter/src/widgets/framework.dart:1518:12)
15:39:00.665: I/flutter : #3      BuildableElement.markNeedsBuild (package:flutter/src/widgets/framework.dart:2528:11)
15:39:00.668: I/flutter : #4      BuildableElement.dependenciesChanged (package:flutter/src/widgets/framework.dart:2587:5)
15:39:00.671: I/flutter : #5      BuildableElement.activate (package:flutter/src/widgets/framework.dart:2602:7)
15:39:00.673: I/flutter : #6      Element._activateRecursively (package:flutter/src/widgets/framework.dart:2185:13)
15:39:00.676: I/flutter : #7      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:2693:14)
15:39:00.679: I/flutter : #8      Element._activateRecursively (package:flutter/src/widgets/framework.dart:2187:13)
15:39:00.682: I/flutter : #9      SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:3427:14)
15:39:00.685: I/flutter : #10     Element._activateRecursively (package:flutter/src/widgets/framework.dart:2187:13)
15:39:00.688: I/flutter : #11     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:3427:14)
15:39:00.691: I/flutter : #12     Element._activateRecursively (package:flutter/src/widgets/framework.dart:2187:13)
15:39:00.693: I/flutter : #13     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:3427:14)
15:39:00.696: I/flutter : #14     Element._activateRecursively (package:flutter/src/widgets/framework.dart:2187:13)
15:39:00.699: I/flutter : #15     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:2693:14)
15:39:00.702: I/flutter : #16     Element._activateRecursively (package:flutter/src/widgets/framework.dart:2187:13)
15:39:00.705: I/flutter : #17     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:2693:14)
15:39:00.708: I/flutter : #18     Element._activateRecursively (package:flutter/src/widgets/framework.dart:2187:13)
15:39:00.711: I/flutter : #19     Element._activateWithParent (package:flutter/src/widgets/framework.dart:2178:5)
15:39:00.714: I/flutter : #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2122:18)
15:39:00.717: I/flutter : #21     Element.updateChild (package:flutter/src/widgets/framework.dart:1961:12)
15:39:00.720: I/flutter : #22     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.723: I/flutter : #23     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.726: I/flutter : #24     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.729: I/flutter : #25     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.732: I/flutter : #26     ProxyElement.update (package:flutter/src/widgets/framework.dart:2908:5)
15:39:00.734: I/flutter : #27     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.737: I/flutter : #28     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:3172:26)
15:39:00.740: I/flutter : #29     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3545:17)
15:39:00.744: I/flutter : #30     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.747: I/flutter : #31     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:3172:26)
15:39:00.749: I/flutter : #32     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3545:17)
15:39:00.752: I/flutter : #33     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.754: I/flutter : #34     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.757: I/flutter : #35     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.760: I/flutter : #36     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.762: I/flutter : #37     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.765: I/flutter : #38     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.767: I/flutter : #39     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.771: I/flutter : #40     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.773: I/flutter : #41     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.777: I/flutter : #42     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.780: I/flutter : #43     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.783: I/flutter : #44     StatefulElement.update (package:flutter/src/widgets/framework.dart:2790:5)
15:39:00.785: I/flutter : #45     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.788: I/flutter : #46     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.791: I/flutter : #47     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.794: I/flutter : #48     StatefulElement.update (package:flutter/src/widgets/framework.dart:2790:5)
15:39:00.796: I/flutter : #49     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.799: I/flutter : #50     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.802: I/flutter : #51     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.806: I/flutter : #52     StatelessElement.update (package:flutter/src/widgets/framework.dart:2719:5)
15:39:00.809: I/flutter : #53     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.812: I/flutter : #54     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.815: I/flutter : #55     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.818: I/flutter : #56     StatelessElement.update (package:flutter/src/widgets/framework.dart:2719:5)
15:39:00.821: I/flutter : #57     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.823: I/flutter : #58     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.826: I/flutter : #59     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.829: I/flutter : #60     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.832: I/flutter : #61     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.835: I/flutter : #62     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.838: I/flutter : #63     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.841: I/flutter : #64     ProxyElement.update (package:flutter/src/widgets/framework.dart:2908:5)
15:39:00.844: I/flutter : #65     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.846: I/flutter : #66     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:3172:26)
15:39:00.849: I/flutter : #67     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3545:17)
15:39:00.852: I/flutter : #68     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.855: I/flutter : #69     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.858: I/flutter : #70     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.861: I/flutter : #71     StatefulElement.update (package:flutter/src/widgets/framework.dart:2790:5)
15:39:00.864: I/flutter : #72     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.866: I/flutter : #73     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:3172:26)
15:39:00.869: I/flutter : #74     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3545:17)
15:39:00.872: I/flutter : #75     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.875: I/flutter : #76     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.878: I/flutter : #77     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.880: I/flutter : #78     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.883: I/flutter : #79     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.886: I/flutter : #80     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3446:14)
15:39:00.889: I/flutter : #81     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.892: I/flutter : #82     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:2681:16)
15:39:00.895: I/flutter : #83     BuildableElement.rebuild (package:flutter/src/widgets/framework.dart:2570:5)
15:39:00.898: I/flutter : #84     StatelessElement.update (package:flutter/src/widgets/framework.dart:2719:5)
15:39:00.901: I/flutter : #85     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.904: I/flutter : #86     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:3172:26)
15:39:00.907: I/flutter : #87     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:3545:17)
15:39:00.910: I/flutter : #88     Element.updateChild (package:flutter/src/widgets/framework.dart:1954:15)
15:39:00.913: I/flutter : #89     _LayoutBuilderElement._layout.<anonymous closure> (package:flutter/src/widgets/layout_builder.dart:120:18)
15:39:00.916: I/flutter : #90     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:1640:19)
15:39:00.919: I/flutter : #91     _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:108:11)
15:39:00.922: I/flutter : #92     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1669:58)
15:39:00.925: I/flutter : #93     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:919:15)
15:39:00.928: I/flutter : #94     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1669:13)
15:39:00.931: I/flutter : #95     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:207:5)
15:39:00.934: I/flutter : #96     RenderObject.layout (package:flutter/src/rendering/object.dart:1571:21)
15:39:00.936: I/flutter : #97     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:354:15)
15:39:00.939: I/flutter : #98     RenderObject.layout (package:flutter/src/rendering/object.dart:1571:21)
15:39:00.942: I/flutter : #99     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:209:13)
15:39:00.945: I/flutter : #100    RenderObject.layout (package:flutter/src/rendering/object.dart:1571:21)
15:39:00.948: I/flutter : #101    RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:516:17)
15:39:00.951: I/flutter : #102    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1448:21)
15:39:00.953: I/flutter : #103    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:897:18)
15:39:00.956: I/flutter : #104    BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding.beginFrame (package:flutter/src/rendering/binding.dart:207:19)
15:39:00.959: I/flutter : #105    BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.beginFrame (package:flutter/src/widgets/binding.dart:297:23)
15:39:00.962: I/flutter : #106    BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:152:5)
15:39:00.965: I/flutter : #107    BindingBase&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:608:15)
15:39:00.968: I/flutter : #108    BindingBase&SchedulerBinding.handleBeginFrame (package:flutter/src/scheduler/binding.dart:543:9)
15:39:00.970: I/flutter : #109    _beginFrame (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:48)
15:39:00.973: I/flutter : (elided one frame from class _AssertionError)
15:39:00.976: I/flutter : ════════════════════════════════════════════════════════════════════════════════════════════════════
@Hixie
Copy link
Contributor

Hixie commented Sep 27, 2016

Wow, how is that possible.

@Hixie Hixie added ⚠ bug framework flutter/packages/flutter repository. See also f: labels. labels Sep 27, 2016
@Hixie Hixie added this to the 2: Make Early Adopters happy milestone Sep 27, 2016
@apwilson
Copy link
Contributor Author

I think I may have had two or more widgets in a block that had the same key.

@Hixie
Copy link
Contributor

Hixie commented Sep 27, 2016

We should assert about that much earlier in that case...

@sigurdm
Copy link
Contributor

sigurdm commented Sep 29, 2016

I think I hit this one too. Here is a short reproduction:

import 'package:flutter/material.dart';

void main() {
  runApp(new ScrollableList(
    itemExtent: 218.0,
    children: [new Text("A"), new Text("B")],
  ));
}

Run this on a nexus 5x starting in portrait.
Rotate to landscape.
Scroll to the bottom.
Rotate back to portrait.

I/flutter : ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter : The following assertion was thrown during performLayout():
I/flutter : Build scheduled during frame.
I/flutter : While the widget tree was being built, laid out, and painted, a new frame was scheduled to rebuild
I/flutter : the widget tree. This might be because setState() was called from a layout or paint callback. If a
I/flutter : change is needed to the widget tree, it should be applied as the tree is being built. Scheduling a
I/flutter : change for the subsequent frame instead results in an interface that lags behind by one frame. If
I/flutter : this was done to make your build dependent on a size measured at layout time, consider using a
I/flutter : LayoutBuilder, CustomSingleChildLayout, or CustomMultiChildLayout. If, on the other hand, the one
I/flutter : frame delay is the desired effect, for example because this is an animation, consider scheduling the
I/flutter : frame in a post-frame callback using SchedulerBinding.addPostFrameCallback or using an
I/flutter : AnimationController to trigger the animation.
I/flutter : 
I/flutter : When the exception was thrown, this was the stack:
I/flutter : #0      BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding._handleBuildScheduled.<anonymous closure> (package:flutter/src/widgets/binding.dart:199)
I/flutter : #2      BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding._handleBuildScheduled (package:flutter/src/widgets/binding.dart:197)
I/flutter : #3      BuildOwner.scheduleBuildFor (package:flutter/src/widgets/framework.dart:1553)
I/flutter : #4      BuildableElement.markNeedsBuild (package:flutter/src/widgets/framework.dart:2528)
I/flutter : #5      State.setState (package:flutter/src/widgets/framework.dart:852)
I/flutter : #6      ScrollableState._setScrollOffset (package:flutter/src/widgets/scrollable.dart:438)
I/flutter : #7      ScrollableState.scrollTo (package:flutter/src/widgets/scrollable.dart:487)
I/flutter : #8      ScrollableState.didUpdateScrollBehavior (package:flutter/src/widgets/scrollable.dart:524)
I/flutter : #9      ScrollableState.handleExtentsChanged (package:flutter/src/widgets/scrollable.dart:539)
I/flutter : #10     ScrollableList._buildViewport.<anonymous closure> (package:flutter/src/widgets/scrollable_list.dart:131)
I/flutter : #11     _VirtualListViewportElement.layout (package:flutter/src/widgets/scrollable_list.dart:354)
I/flutter : #12     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1669)
I/flutter : #13     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:919)
I/flutter : #14     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1669)
I/flutter : #15     RenderList.performLayout (package:flutter/src/rendering/list.dart:156)
I/flutter : #16     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #17     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:91)
I/flutter : #18     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #19     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:91)
I/flutter : #20     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #21     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:91)
I/flutter : #22     RenderObject.layout (package:flutter/src/rendering/object.dart:1571)
I/flutter : #23     RenderView.performLayout (package:flutter/src/rendering/view.dart:113)
I/flutter : #24     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1448)
I/flutter : #25     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:897)
I/flutter : #26     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding.beginFrame (package:flutter/src/rendering/binding.dart:207)
I/flutter : #27     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.beginFrame (package:flutter/src/widgets/binding.dart:297)
I/flutter : #28     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:152)
I/flutter : #29     BindingBase&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:608)
I/flutter : #30     BindingBase&SchedulerBinding.handleBeginFrame (package:flutter/src/scheduler/binding.dart:543)
I/flutter : #31     _beginFrame (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:48)
I/flutter : (elided one frame from class _AssertionError)
I/flutter : 
I/flutter : The following RenderObject was being processed when the exception was fired:
I/flutter :   RenderList
I/flutter : This RenderObject had the following creator information:
I/flutter :   ListViewport ← IgnorePointer ← Listener ← _GestureSemantics ← RawGestureDetector-[GlobalKey
I/flutter :   591536602] ← Scrollable ← ScrollableList ← [root]
I/flutter : This RenderObject had the following descendants (showing up to depth 5):
I/flutter :   RenderRepaintBoundary
I/flutter :     RenderParagraph
I/flutter :   RenderRepaintBoundary
I/flutter :     RenderParagraph
I/flutter : ════════════════════════════════════════════════════════════════════════════════════════════════════

@Hixie
Copy link
Contributor

Hixie commented Sep 29, 2016

@sigurdm your case is actually #6063 (note the different stack traces).

@Hixie Hixie changed the title "widget was rebuilt outside the build phase" assert Be better about catching duplicate GlobalKeys Nov 12, 2016
@eseidelGoogle
Copy link
Contributor

Is this still an issue? If so, how would I repro?

@Hixie
Copy link
Contributor

Hixie commented Feb 9, 2017

Yeah. Just create an app and put the same GlobalKey on two widgets.

@github-actions
Copy link

github-actions bot commented Sep 5, 2021

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 5, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants