Skip to content

Invalid session invites render as 100,000 pixels width & height #97

@eth0fox

Description

@eth0fox

Describe the bug

If you send a session invite while being in no session (literally, crash Local, have your status show as "No session"), this appears to ReCon users as a 100,000 pixel tall monolith.

Screenshots

Image

ReCon Version Number

1.12.1

What Platforms does this occur on?

IOS, Windows, MacOS

Additional Context


══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following _TypeError was thrown building MessageInviteRequest(dirty):
type 'Null' is not a subtype of type 'String'

The relevant error-causing widget was:
  MessageInviteRequest
  MessageInviteRequest:file:///Users/fox/dev/ReCon/lib/widgets/messages/message_bubble.dart:36:46

When the exception was thrown, this was the stack:
#0      new Session.fromMap (package:recon/models/session.dart:107:14)
#1      new InviteRequest.fromMap (package:recon/models/invite_request.dart:56:23)
#2      MessageInviteRequest.build (package:recon/widgets/messages/message_invite_request.dart:18:38)
#3      StatelessElement.build (package:flutter/src/widgets/framework.dart:5892:49)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5820:15)
#5      Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
#7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
...     Normal element mounting (61 frames)
#68     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
#69     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7269:36)
#70     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7285:32)
...     Normal element mounting (50 frames)
#120    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
#121    Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#122    SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1068:37)
#123    SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1052:20)
#124    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3101:19)
#125    SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1042:12)
#126    RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:372:23)
#127    RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2894:17)
#128    PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1219:15)
#129    RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2893:14)
#130    RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:360:5)
#131    RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:460:5)
#132    RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:79:12)
#133    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#134    RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:133:12)
#135    RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:371:11)
#136    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#137    RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:673:13)
#138    RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1684:12)
#139    RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1575:20)
#140    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#141    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#142    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#143    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#144    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#145    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#146    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#147    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#148    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#149    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#150    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#151    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#152    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#153    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#154    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#155    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#156    RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:574:11)
#157    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#158    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#159    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#160    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#161    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#162    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#163    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#164    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#165    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#166    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#167    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#168    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#169    RenderStack._computeSize (package:flutter/src/rendering/stack.dart:645:43)
#170    RenderStack.performLayout (package:flutter/src/rendering/stack.dart:680:12)
#171    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#172    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#173    RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:1203:26)
#174    RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1257:32)
#175    RenderObject.layout (package:flutter/src/rendering/object.dart:2775:7)
#176    MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:180:12)
#177    _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1112:7)
#178    MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:249:7)
#179    RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:420:14)
#180    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2623:7)
#181    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1170:18)
#182    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1183:15)
#183    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:629:23)
#184    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1264:13)
#185    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
#186    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1434:15)
#187    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1347:9)
#188    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1200:5)
#189    _invoke (dart:ui/hooks.dart:356:13)
#190    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:444:5)
#191    _drawFrame (dart:ui/hooks.dart:328:31)

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

Another exception was thrown: A RenderFlex overflowed by 99260 pixels on the right.
Another exception was thrown: type 'Null' is not a subtype of type 'String'
Another exception was thrown: type 'Null' is not a subtype of type 'String'
Another exception was thrown: type 'Null' is not a subtype of type 'String'
Another exception was thrown: type 'Null' is not a subtype of type 'String'
Another exception was thrown: type 'Null' is not a subtype of type 'String'
Another exception was thrown: type 'Null' is not a subtype of type 'String'
Another exception was thrown: type 'Null' is not a subtype of type 'String'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions