Steps to Reproduce
This was found in a presubmit test for a g3 change. More detail is available there.
The broken test was testing the value of a tooltip assigned to a Chip. The test was passing on April 3, but after the g3 roll of Flutter to d6d8744 on April 6, the test is failing. The failure seems to be comming from Chip's animation controllers, which I notice were changed substantially since the previous g3 roll (bffae21 on March 29).
Logs
══╡ EXCEPTION CAUGHT BY ANIMATION LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown while notifying status listeners for AnimationController:
'package:flutter/src/widgets/animated_child_switcher.dart': Failed assertion: line 107 pos 16:
'_children.contains(entry)': 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
When the exception was thrown, this was the stack:
#2 _AnimatedChildSwitcherState.addEntry.<anonymous closure> (package:flutter/src/widgets/animated_child_switcher.dart)
#3 _AnimationController&Animation&AnimationEagerListenerMixin&AnimationLocalListenersMixin&AnimationLocalStatusListenersMixin.notifyStatusListeners (package:flutter/src/animation/listener_helpers.dart:161:19)
#4 AnimationController._checkStatusChanged (package:flutter/src/animation/animation_controller.dart:531:7)
#5 AnimationController._animateToInternal (package:flutter/src/animation/animation_controller.dart:396:7)
#6 AnimationController.reverse (package:flutter/src/animation/animation_controller.dart:346:12)
#7 _AnimatedChildSwitcherState.addEntry (package:flutter/src/widgets/animated_child_switcher.dart:86:34)
#8 _AnimatedChildSwitcherState.build (package:flutter/src/widgets/animated_child_switcher.dart:131:7)
#9 StatefulElement.build (package:flutter/src/widgets/framework.dart:3713:27)
#10 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3625:15)
#11 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#12 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#13 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#14 _RenderChipElement._updateChild (package:flutter/src/material/chip.dart:1566:30)
#15 _RenderChipElement.update (package:flutter/src/material/chip.dart:1583:5)
#16 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#17 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#18 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#19 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#20 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#21 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#22 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#23 StatelessElement.update (package:flutter/src/widgets/framework.dart:3685:5)
#24 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#25 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#26 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#27 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#28 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#29 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#30 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#31 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#32 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#33 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#34 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#35 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#36 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#37 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#38 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#39 StatelessElement.update (package:flutter/src/widgets/framework.dart:3685:5)
#40 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#41 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#42 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#43 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#44 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#45 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#46 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#47 ProxyElement.update (package:flutter/src/widgets/framework.dart:3892:5)
#48 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#49 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#50 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#51 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#52 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#53 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#54 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#55 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#56 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#57 StatelessElement.update (package:flutter/src/widgets/framework.dart:3685:5)
#58 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#59 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#60 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#61 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#62 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#63 StatelessElement.update (package:flutter/src/widgets/framework.dart:3685:5)
#64 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#65 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#66 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#67 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#68 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#69 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#70 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#71 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#72 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#73 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#74 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#75 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#76 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#77 StatefulElement.update (package:flutter/src/widgets/framework.dart:3782:5)
#78 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#79 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#80 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#81 StatelessElement.update (package:flutter/src/widgets/framework.dart:3685:5)
#82 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#83 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#84 Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#85 StatelessElement.update (package:flutter/src/widgets/framework.dart:3685:5)
#86 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#87 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4644:14)
#88 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#89 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4362:32)
#90 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4752:17)
#91 Element.updateChild (package:flutter/src/widgets/framework.dart:2682:15)
#92 _LayoutBuilderElement._layout.<anonymous closure> (package:flutter/src/widgets/layout_builder.dart:118:18)
#93 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2205:19)
#94 _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:107:11)
#95 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1666:58)
#96 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:740:15)
#97 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1666:13)
#98 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:205:5)
#99 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#100 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
#101 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
#102 RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:381:13)
#103 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1445:7)
#104 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:709:18)
#105 AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:613:23)
#106 _TestWidgetsFlutterBinding&BindingBase&SchedulerBinding&GestureBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
#107 _TestWidgetsFlutterBinding&BindingBase&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
#108 _TestWidgetsFlutterBinding&BindingBase&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
#109 AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding.dart:578:9)
#112 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:69:44)
#113 AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:566:27)
#114 WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:195:22)
#117 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:69:44)
#118 WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:192:27)
#119 _WidgetTestController.pumpWidget <SNIP>
The AnimationController notifying status listeners was:
AnimationController#3e210(⏮ 0.000; paused)
Flutter Doctor
This was found after the roll of Flutter to d6d8744 in g3.
Steps to Reproduce
This was found in a presubmit test for a g3 change. More detail is available there.
The broken test was testing the value of a tooltip assigned to a Chip. The test was passing on April 3, but after the g3 roll of Flutter to d6d8744 on April 6, the test is failing. The failure seems to be comming from Chip's animation controllers, which I notice were changed substantially since the previous g3 roll (bffae21 on March 29).
Logs
Flutter Doctor
This was found after the roll of Flutter to d6d8744 in g3.