Skip to content

TextField throws error in production environment because it wrongly uses ancestor render boxes (will PR; with cause analyzed) #126312

@fzyzcjy

Description

@fzyzcjy

Hi thanks for the Flutter framework! However I am seeing this annoying bug in production environment :( Below are my analysis of bug cause, and I will PR soon.

Analysis of cause

Remark: I will try to explain it as clear as possible, so the explanation order is quite different from how I actually find this annoying bug.

Firstly, the reproduction ensures that the following stack trace is triggered (marked by <-----):

  void didUpdateWidget(MyEditableText oldWidget) {
...
    else if (oldWidget.readOnly && _hasFocus) {
      _openInputConnection(); // <------
...
  void _openInputConnection() {
...
      _updateSizeAndTransform(); // <------
...
  void _updateSizeAndTransform() {
    if (_hasInputConnection) {
      final Size size = renderEditable.size;
      final Matrix4 transform = renderEditable.getTransformTo(null); // <------
...

or, a screenshot if you like:

image

Now comes the problem: Theoretically, we are calling getTransformTo inside a didUpdateWidget. In other words, we are fetching information that is available only in/after layout-phase at the build-phase.

In normal cases, this may not be a problem, since we are inside didUpdateWidget, so we should already have done one build and thus there should be some (though possibly outdated) layout information.

However, consider the GlobalKey-triggered reparenting scenario. In the minimal reproducible sample code, as you can see, I am using a GlobalKey, and the didUpdateWidget is triggered when the TextField subtree is moved into a brand new location, i.e. as a child of the brand new FractionalTranslation.

Now comes the problem. The FractionalTranslation is just created, and thus it has not gone through the layout phase at all. Thus, when we are calling getTransformTo(), we will go through ancestors, including the RenderFractionalTranslation, and asks it to provide a transformation (applyPaintTransform). How can it provide one if it has not been laid out? Then the error is thrown.

Generalization of the bug: After understanding the cause, we can see that, not only FractionalTranslation, but any RenderObject that requires layout-phase information at its applyPaintTransform will cause the trouble.

P.S. This is just a minimal reproducible sample, and in production environment surely my widget tree is not this weird and artificial.


Is there an existing issue for this?

Steps to reproduce

  1. Run app
  2. tap the text field (it is readOnly=true, so you will see it is highlighted, but keyboard not opened)
  3. tap the "toggle" button
  4. see error

Expected results

no error

Actual results

see error

Code sample

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

void main() => runApp(MyApp());

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final textFieldKey = GlobalKey();
  var enable = false;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(),
        body: Column(
          children: [
            TextButton(
              onPressed: () {
                print('tap toggle');
                setState(() => enable = !enable);
              },
              child: Text('toggle'),
            ),
            enable
                ? FractionalTranslation(
                    translation: Offset(0.1, 0.1),
                    child: TextField(key: textFieldKey),
                  )
                : TextField(key: textFieldKey, readOnly: true),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
======== Exception caught by widgets library =======================================================
The following assertion was thrown building UnmanagedRestorationScope:
RenderBox was not laid out: RenderFractionalTranslation#7ed52 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2009 pos 12: 'hasSize'


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.md

The relevant error-causing widget was: 
  TextField-[GlobalKey#a1af1] TextField:file:///Users/tom/RefCode/bug/lib/main.dart:33:28
When the exception was thrown, this was the stack: 
#2      RenderBox.size (package:flutter/src/rendering/box.dart:2009:12)
#3      RenderFractionalTranslation.applyPaintTransform (package:flutter/src/rendering/proxy_box.dart:3045:24)
#4      RenderObject.getTransformTo (package:flutter/src/rendering/object.dart:2968:24)
#5      EditableTextState._updateSizeAndTransform (package:flutter/src/widgets/editable_text.dart:3530:48)
#6      EditableTextState._openInputConnection (package:flutter/src/widgets/editable_text.dart:2922:7)
#7      EditableTextState.didUpdateWidget (package:flutter/src/widgets/editable_text.dart:2461:7)
#8      StatefulElement.update (package:flutter/src/widgets/framework.dart:5142:55)
#9      Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#10     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#11     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#12     ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#13     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#14     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#15     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#16     SlottedRenderObjectElement._updateChildren (package:flutter/src/widgets/slotted_render_object_widget.dart:270:33)
#17     SlottedRenderObjectElement.update (package:flutter/src/widgets/slotted_render_object_widget.dart:231:5)
#18     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#19     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#20     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#21     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#22     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#23     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#24     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#25     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#26     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#27     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#28     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#29     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#30     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#32     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#33     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#34     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#35     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#36     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#37     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#38     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#39     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#40     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#41     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#42     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#43     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#44     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#45     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#46     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#47     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#48     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#49     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#50     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#51     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#52     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#53     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#54     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#55     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#56     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#57     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#58     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
...     Normal element mounting (4 frames)
#62     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
#63     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6512:36)
#64     Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
#65     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:6041:32)
#66     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)
#67     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#68     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#69     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#70     StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#71     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#73     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#74     StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#75     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#76     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#77     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#78     ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#79     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#80     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#81     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#82     ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#83     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#84     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5981:32)
#85     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)
#86     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#87     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#88     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#89     ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#90     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#91     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#92     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#93     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#94     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#95     Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#96     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#97     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#98     Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#99     StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#100    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#101    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#102    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#103    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#104    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#105    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#106    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#107    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#108    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#109    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#110    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#111    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#112    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#113    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#114    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#115    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#116    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#117    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#118    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#119    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#120    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#121    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#122    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#123    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#124    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#125    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#126    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#127    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#128    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#129    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#130    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#131    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#132    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#133    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#134    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#135    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#136    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#137    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#138    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#139    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#140    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#141    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#142    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#143    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#144    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#145    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#146    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#147    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#148    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#149    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#150    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#151    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#152    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#153    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#154    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#155    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#156    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#157    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#158    StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#159    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#160    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#161    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#162    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#163    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#164    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#165    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#166    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#167    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#168    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#169    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#170    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#171    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#172    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#173    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#174    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#175    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#176    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#177    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#178    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#179    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#180    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#181    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#182    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#183    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#184    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#185    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#186    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#187    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#188    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#189    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#190    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#191    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#192    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#193    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#194    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#195    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#196    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#197    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#198    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#199    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#200    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#201    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#202    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#203    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#204    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#205    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#206    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#207    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#208    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#209    StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#210    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#211    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#212    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#213    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#214    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#215    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#216    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#217    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#218    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#219    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#220    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#221    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#222    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#223    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#224    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#225    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#226    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#227    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#228    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#229    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#230    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#231    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#232    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#233    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#234    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#235    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#236    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#237    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#238    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#239    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#240    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#241    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#242    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#243    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#244    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#245    StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#246    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#247    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#248    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#249    StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#250    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#251    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#252    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#253    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#254    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#255    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#256    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#257    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#258    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#259    ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#260    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#261    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#262    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#263    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#264    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#265    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#266    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#267    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#268    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#269    StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#270    Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#271    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#272    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#273    Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#274    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2743:19)
#275    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:863:21)
#276    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:381:5)
#277    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)
#278    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1218:9)
#279    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1076:5)
#280    _invoke (dart:ui/hooks.dart:145:13)
#281    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:338:5)
#282    _drawFrame (dart:ui/hooks.dart:112:31)
(elided 2 frames from class _AssertionError)
====================================================================================================

Flutter Doctor output

Doctor output
[Paste your output here]

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: error messageError messages from the Flutter frameworka: text inputEntering text in a text field or keyboard related problemsc: crashStack traces logged to the consolefound in release: 3.11Found to occur in 3.11found in release: 3.7Found to occur in 3.7frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions