Steps to reproduce
- Start Flutter app in WEB WASM mode: flutter run -d web-server --wasm
- Run testing in mobile browser (google chrome 144.0.7559.132, android 12)
- Test my app 1-2 min.
- Throw in console "RuntimeError: operation does not support unaligned accesses".
- After this we also see many runtime errors like:
- "RenderBox.size accessed beyond the scope of resize, layout, or permitted parent access. RenderBox can always access its own size, otherwise, the only object that is allowed to read RenderBox.size is its parent, if they have said they will. It you hit this assert trying to access a child's size, pass "parentUsesSize: true" to that child's layout() in RenderTapRegionSurface.performLayout."
- Out of boundary errors.
- And other types of errors, because of cascade crush
Before crash App works good, without freezes. After this Runtime error - Interface completely freezes, but main thread works good (other business-logic logs system add to console; and our test js-overlay fps counter, what works in JS in index.html entry point, not freezing and works good)
Memory Profiling Analysis of the UI Freeze
In addition to the runtime errors, we have conducted a memory analysis using the Chrome DevTools Memory profiler, which has revealed a strong correlation between the UI freeze and a specific memory allocation event.
Observations:
At the exact moment the application's UI becomes unresponsive, we observe a sudden and significant memory allocation.
-
Large Memory Spike: A SharedArrayBuffer constructor (e.g., SharedArrayBuffer@4299775) abruptly allocates approximately 30 MB of memory. This is a major anomaly, as other object allocations are typically orders of magnitude smaller (usually less than 500 KB each).
-
Persistent Allocation: This ~30 MB memory block is not released and is held for the duration of the freeze. The memory profiler indicates it is retained in the heap.
-
Difficulty with Inspection: When inspecting the heap snapshot, tracing the origin of this SharedArrayBuffer back to our Dart code is challenging. The object's property tree contains low-level, internal references that do not map directly to our application logic. These references include:
backing_store::system / JSArrayBufferData@4320355
map::system / Map@414411
prototype::SharedArrayBuffer@843133
constructor::SharedArrayBuffer()@843109
Hypothesis:
We suspect that the UI freeze is triggered by a low-level operation within the Flutter Web engine (likely the SKWasm renderer) that allocates a large SharedArrayBuffer for a rendering task (such as handling a large texture, complex shader, or render target). A subsequent error, possibly one of the RuntimeError exceptions seen in the console, occurs during or after this allocation, leaving the memory allocated but preventing the rendering engine from completing the frame, thus freezing the UI.
Here heaptimeline dump (you can see when freezed - after 2.3 min of work we have big 30MB SharedArrayBuffer object):
https://drive.google.com/file/d/1PVo4mU-6eEkWNzldF13rQvfruyVdfB77/view?usp=sharing
Expected results
App works without total freezing interface
Actual results
App every time get total freezing interface after 1-2 min works
Code sample
Code sample
(not dart code, mostly in https://www.gstatic.com/flutter-canvaskit/3452d735bd38224ef2db85ca763d862d6326b17f/skwasm_heavy.wasm)
Screenshots or Video
Screenshots / Video demonstration
[Upload media here]
Logs
Logs
14:41:08 | DEBUG | Router | 🔀 ROUTER REDIRECT: status=AuthStatus.authenticated, isAuth=true, path=/, isAuthRoute=false
skwasm_heavy.wasm:0xc7b92 Uncaught RuntimeError: operation does not support unaligned accesses
at skwasm_heavy.wasm:0xc7b92
at skwasm_heavy.wasm:0x806cf
at skwasm_heavy.wasm:0x17741
at skwasm_heavy.wasm:0x7f644
at skwasm_heavy.wasm:0xb6b6c
at skwasm_heavy.wasm:0x12e0d6
at skwasm_heavy.wasm:0x12e044
at skwasm_heavy.wasm:0x1342b2
at skwasm_heavy.wasm:0x312762
at skwasm_heavy.wasm:0x181ca
$func3926 @ skwasm_heavy.wasm:0xc7b92
$func2710 @ skwasm_heavy.wasm:0x806cf
$func470 @ skwasm_heavy.wasm:0x17741
$func2676 @ skwasm_heavy.wasm:0x7f644
$func3632 @ skwasm_heavy.wasm:0xb6b6c
$func5550 @ skwasm_heavy.wasm:0x12e0d6
$func5548 @ skwasm_heavy.wasm:0x12e044
$func5695 @ skwasm_heavy.wasm:0x1342b2
$func13045 @ skwasm_heavy.wasm:0x312762
$func490 @ skwasm_heavy.wasm:0x181ca
$func490 @ skwasm_heavy.wasm:0x181b0
$func490 @ skwasm_heavy.wasm:0x185e5
$func490 @ skwasm_heavy.wasm:0x185e5
$func1992 @ skwasm_heavy.wasm:0x5af32
$func10059 @ skwasm_heavy.wasm:0x268e47
$func2716 @ skwasm_heavy.wasm:0x808be
$func7693 @ skwasm_heavy.wasm:0x1d3326
$func4440 @ skwasm_heavy.wasm:0xed127
$func13934 @ skwasm_heavy.wasm:0x334722
$func4893 @ skwasm_heavy.wasm:0x1099c2
$func4893 @ skwasm_heavy.wasm:0x10991e
$func4893 @ skwasm_heavy.wasm:0x10991e
$func4893 @ skwasm_heavy.wasm:0x10991e
$func4893 @ skwasm_heavy.wasm:0x10991e
$func8800 @ skwasm_heavy.wasm:0x224009
$func8826 @ skwasm_heavy.wasm:0x22944a
$func14080 @ skwasm_heavy.wasm:0x338379
$func468 @ skwasm_heavy.wasm:0x1721d
$func14410 @ skwasm_heavy.wasm:0x348a4f
$func6172 @ skwasm_heavy.wasm:0x14e490
$func4944 @ skwasm_heavy.wasm:0x10db55
$func2106 @ skwasm_heavy.wasm:0x6035c
$func8875 @ skwasm_heavy.wasm:0x22b94a
$func12395 @ skwasm_heavy.wasm:0x2f0009
$surface_renderPicturesOnWorker @ skwasm_heavy.wasm:0x256458
(anonymous) @ skwasm_heavy.js:33
(anonymous) @ skwasm_heavy.js:32
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.ensureVisualUpdate @ binding.dart:910
$_BindingPipelineManifold.requestVisualUpdate @ binding.dart:829
$PipelineOwner.requestVisualUpdate @ object.dart:1072
$RenderObject.markNeedsLayout @ object.dart:2536
$RenderBox.markNeedsLayout @ box.dart:2860
$RenderBox.markNeedsLayout tear-off trampoline @ main.dart.wasm:0x5ca849
$ChangeNotifier.notifyListeners @ change_notifier.dart:432
$ScrollPosition.notifyListeners @ scroll_position.dart:1123
$ScrollPosition.setPixels @ scroll_position.dart:392
$ScrollPositionWithSingleContext.setPixels @ scroll_position_with_single_context.dart:87
$ScrollPositionWithSingleContext.applyUserOffset @ scroll_position_with_single_context.dart:131
$ScrollDragController.update @ scroll_activity.dart:415
$ScrollableState._handleDragUpdate @ scrollable.dart:884
$ScrollableState._handleDragUpdate tear-off trampoline @ main.dart.wasm:0x959606
$DragGestureRecognizer._checkUpdate closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/monodrag.dart:871:40 @ monodrag.dart:871
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/monodrag.dart:871:40 trampoline @ main.dart.wasm:0x5c7749
$GestureRecognizer.invokeCallback @ recognizer.dart:345
$DragGestureRecognizer._checkUpdate @ monodrag.dart:871
$DragGestureRecognizer.handleEvent @ monodrag.dart:713
$DragGestureRecognizer.handleEvent tear-off trampoline @ main.dart.wasm:0x5c6dd3
$PointerRouter._dispatch @ pointer_router.dart:97
$PointerRouter._dispatchEventToRoutes closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:138:26 @ pointer_router.dart:140
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:138:26 trampoline @ main.dart.wasm:0x3ef066
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$PointerRouter._dispatchEventToRoutes @ pointer_router.dart:138
$PointerRouter.route @ pointer_router.dart:128
$_MixinApplication192&BindingBase&GestureBinding.handleEvent @ binding.dart:528
$_MixinApplication192&BindingBase&GestureBinding.dispatchEvent @ binding.dart:498
$_MixinApplication197&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding.dispatchEvent @ binding.dart:473
$_MixinApplication192&BindingBase&GestureBinding._handlePointerEventImmediately @ binding.dart:437
$_MixinApplication192&BindingBase&GestureBinding.handlePointerEvent @ binding.dart:394
$_MixinApplication192&BindingBase&GestureBinding._flushPointerEventQueue @ binding.dart:341
$_MixinApplication192&BindingBase&GestureBinding._handlePointerDataPacket @ binding.dart:308
$_MixinApplication192&BindingBase&GestureBinding._handlePointerDataPacket tear-off trampoline @ main.dart.wasm:0x98beb6
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnPointerDataPacket @ platform_dispatcher.dart:292
$ClickDebouncer._sendToFramework @ pointer_binding.dart:451
$ClickDebouncer.onPointerData @ pointer_binding.dart:233
$_PointerAdapter.setup closure at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:1016:60 @ pointer_binding.dart:1043
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:1016:60 trampoline @ main.dart.wasm:0x3966c6
$_PointerAdapter._addPointerEventListener closure at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:948:41 @ pointer_binding.dart:953
$_BaseAdapter.addEventListener closure loggedHandler at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:558:23 @ pointer_binding.dart:576
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:558:23 trampoline @ main.dart.wasm:0x39693a
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_734 @ main.dart.wasm:0x36e3c3
(anonymous) @ main.dart.mjs:216Understand this error
skwasm_heavy.wasm:0xcfdc6 Uncaught RuntimeError: function signature mismatch
at skwasm_heavy.wasm:0xcfdc6
at skwasm_heavy.wasm:0x2d06fc
at skwasm_heavy.wasm:0xcfdc6
at skwasm_heavy.wasm:0x2d06fc
at skwasm_heavy.wasm:0xcfdc6
at skwasm_heavy.wasm:0xcfd3a
at skwasm_heavy.wasm:0x18b2d0
at skwasm_heavy.wasm:0x1abc8f
at skwasm_heavy.wasm:0x8d3e9
at skwasm_heavy.wasm:0x2f4dd7
$func4069 @ skwasm_heavy.wasm:0xcfdc6
$func11794 @ skwasm_heavy.wasm:0x2d06fc
$func4069 @ skwasm_heavy.wasm:0xcfdc6
$func11794 @ skwasm_heavy.wasm:0x2d06fc
$func4069 @ skwasm_heavy.wasm:0xcfdc6
$func4068 @ skwasm_heavy.wasm:0xcfd3a
$func6739 @ skwasm_heavy.wasm:0x18b2d0
$func7173 @ skwasm_heavy.wasm:0x1abc8f
$func2915 @ skwasm_heavy.wasm:0x8d3e9
$func12467 @ skwasm_heavy.wasm:0x2f4dd7
$func12464 @ skwasm_heavy.wasm:0x2f3a37
$func9964 @ skwasm_heavy.wasm:0x26767d
$func2717 @ skwasm_heavy.wasm:0x808da
$func9961 @ skwasm_heavy.wasm:0x265ae6
$func5615 @ skwasm_heavy.wasm:0x12fdc8
$func9958 @ skwasm_heavy.wasm:0x2657ea
$func10214 @ skwasm_heavy.wasm:0x273ca7
$paragraph_layout @ skwasm_heavy.wasm:0x2bb1e1
$paragraphLayout @ main.dart.wasm:0x438f90
$SkwasmParagraph.layout @ paragraph.dart:131
$TextPainter.layout @ text_painter.dart:1265
$RenderParagraph._layoutTextWithConstraints @ paragraph.dart:852
$RenderParagraph.performLayout @ paragraph.dart:915
$RenderObject.layout @ object.dart:2768
$RenderPadding.performLayout @ shifted_box.dart:262
$RenderObject.layout @ object.dart:2768
$_MixinApplication7&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout @ proxy_box.dart:118
$RenderObject.layout @ object.dart:2768
$_MixinApplication7&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout @ proxy_box.dart:118
$RenderObject.layout @ object.dart:2768
$RenderSliverMultiBoxAdaptor.insertAndLayoutChild @ sliver_multi_box_adaptor.dart:520
$RenderSliverList.performLayout closure advance at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/rendering/sliver_list.dart:223:17 @ sliver_list.dart:238
$RenderSliverList.performLayout @ sliver_list.dart:278
$RenderObject.layout @ object.dart:2768
$RenderSliverEdgeInsetsPadding.performLayout @ sliver_padding.dart:133
$RenderSliverPadding.performLayout @ sliver_padding.dart:368
$RenderObject.layout @ object.dart:2768
$RenderViewportBase.layoutChildSequence @ viewport.dart:673
$RenderViewport._attemptLayout @ viewport.dart:1684
$RenderViewport.performLayout @ viewport.dart:1575
$RenderObject._layoutWithoutResize @ object.dart:2616
$PipelineOwner.flushLayout @ object.dart:1174
$PipelineOwner.flushLayout @ object.dart:1187
$_MixinApplication197&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame @ binding.dart:629
$_MixinApplication198&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame @ binding.dart:1304
$_MixinApplication197&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback @ binding.dart:495
$_MixinApplication197&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback tear-off trampoline @ main.dart.wasm:0x9631ff
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleDrawFrame @ binding.dart:1345
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleDrawFrame @ binding.dart:1198
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleDrawFrame tear-off trampoline @ main.dart.wasm:0x3f5b89
$invoke @ platform_dispatcher.dart:1689
$EnginePlatformDispatcher.invokeOnDrawFrame @ platform_dispatcher.dart:265
$FrameService._renderFrame @ frame_service.dart:209
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.ensureVisualUpdate @ binding.dart:910
$_BindingPipelineManifold.requestVisualUpdate @ binding.dart:829
$PipelineOwner.requestVisualUpdate @ object.dart:1072
$RenderObject.markNeedsLayout @ object.dart:2536
$RenderBox.markNeedsLayout @ box.dart:2860
$RenderBox.markNeedsLayout tear-off trampoline @ main.dart.wasm:0x5ca849
$ChangeNotifier.notifyListeners @ change_notifier.dart:432
$ScrollPosition.notifyListeners @ scroll_position.dart:1123
$ScrollPosition.setPixels @ scroll_position.dart:392
$ScrollPositionWithSingleContext.setPixels @ scroll_position_with_single_context.dart:87
$ScrollPositionWithSingleContext.applyUserOffset @ scroll_position_with_single_context.dart:131
$ScrollDragController.update @ scroll_activity.dart:415
$ScrollableState._handleDragUpdate @ scrollable.dart:884
$ScrollableState._handleDragUpdate tear-off trampoline @ main.dart.wasm:0x959606
$DragGestureRecognizer._checkUpdate closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/monodrag.dart:871:40 @ monodrag.dart:871
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/monodrag.dart:871:40 trampoline @ main.dart.wasm:0x5c7749
$GestureRecognizer.invokeCallback @ recognizer.dart:345
$DragGestureRecognizer._checkUpdate @ monodrag.dart:871
$DragGestureRecognizer.handleEvent @ monodrag.dart:713
$DragGestureRecognizer.handleEvent tear-off trampoline @ main.dart.wasm:0x5c6dd3
$PointerRouter._dispatch @ pointer_router.dart:97
$PointerRouter._dispatchEventToRoutes closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:138:26 @ pointer_router.dart:140
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:138:26 trampoline @ main.dart.wasm:0x3ef066
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$PointerRouter._dispatchEventToRoutes @ pointer_router.dart:138
$PointerRouter.route @ pointer_router.dart:128
$_MixinApplication192&BindingBase&GestureBinding.handleEvent @ binding.dart:528
$_MixinApplication192&BindingBase&GestureBinding.dispatchEvent @ binding.dart:498
$_MixinApplication197&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding.dispatchEvent @ binding.dart:473
$_MixinApplication192&BindingBase&GestureBinding._handlePointerEventImmediately @ binding.dart:437
$_MixinApplication192&BindingBase&GestureBinding.handlePointerEvent @ binding.dart:394
$_MixinApplication192&BindingBase&GestureBinding._flushPointerEventQueue @ binding.dart:341
$_MixinApplication192&BindingBase&GestureBinding._handlePointerDataPacket @ binding.dart:308
$_MixinApplication192&BindingBase&GestureBinding._handlePointerDataPacket tear-off trampoline @ main.dart.wasm:0x98beb6
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnPointerDataPacket @ platform_dispatcher.dart:292
$ClickDebouncer._sendToFramework @ pointer_binding.dart:451
$ClickDebouncer.onPointerData @ pointer_binding.dart:233
$_PointerAdapter.setup closure at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:1016:60 @ pointer_binding.dart:1043
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:1016:60 trampoline @ main.dart.wasm:0x3966c6
$_PointerAdapter._addPointerEventListener closure at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:948:41 @ pointer_binding.dart:953
$_BaseAdapter.addEventListener closure loggedHandler at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:558:23 @ pointer_binding.dart:576
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:558:23 trampoline @ main.dart.wasm:0x39693a
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_734 @ main.dart.wasm:0x36e3c3
(anonymous) @ main.dart.mjs:216Understand this error
errors_patch.dart:39 Uncaught Exception {}
$Error._throw @ errors_patch.dart:39
$Error._throwWithCurrentStackTrace @ errors_patch.dart:19
$AssertionError._throwWithMessage @ errors_patch.dart:269
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1253
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$Ticker.scheduleTick @ ticker.dart:296
$Ticker._tick @ ticker.dart:282
$Ticker._tick tear-off trampoline @ main.dart.wasm:0x42688b
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._invokeFrameCallback @ binding.dart:1430
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 @ binding.dart:1263
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/scheduler/binding.dart:1261:25 trampoline @ main.dart.wasm:0x3f64eb
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.handleBeginFrame @ binding.dart:1261
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame @ binding.dart:1177
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding._handleBeginFrame tear-off trampoline @ main.dart.wasm:0x3f61b4
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnBeginFrame @ platform_dispatcher.dart:242
$FrameService._renderFrame @ frame_service.dart:190
$FrameService.scheduleFrame closure at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 @ frame_service.dart:117
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/frame_service.dart:91:37 trampoline @ main.dart.wasm:0x3f577e
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_693 @ main.dart.wasm:0x3f5843
(anonymous) @ main.dart.mjs:188
requestAnimationFrame
_694 @ main.dart.mjs:189
$DomWindow|requestAnimationFrame @ main.dart.wasm:0x3f57a1
$FrameService.scheduleFrame @ frame_service.dart:91
$EnginePlatformDispatcher.scheduleFrame @ platform_dispatcher.dart:693
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.scheduleFrame @ binding.dart:957
$_MixinApplication193&BindingBase&GestureBinding&SchedulerBinding.ensureVisualUpdate @ binding.dart:910
$_BindingPipelineManifold.requestVisualUpdate @ binding.dart:829
$PipelineOwner.requestVisualUpdate @ object.dart:1072
$RenderObject.markNeedsLayout @ object.dart:2536
$RenderBox.markNeedsLayout @ box.dart:2860
$RenderBox.markNeedsLayout tear-off trampoline @ main.dart.wasm:0x5ca849
$ChangeNotifier.notifyListeners @ change_notifier.dart:432
$ScrollPosition.notifyListeners @ scroll_position.dart:1123
$ScrollPosition.setPixels @ scroll_position.dart:392
$ScrollPositionWithSingleContext.setPixels @ scroll_position_with_single_context.dart:87
$ScrollPositionWithSingleContext.applyUserOffset @ scroll_position_with_single_context.dart:131
$ScrollDragController.update @ scroll_activity.dart:415
$ScrollableState._handleDragUpdate @ scrollable.dart:884
$ScrollableState._handleDragUpdate tear-off trampoline @ main.dart.wasm:0x959606
$DragGestureRecognizer._checkUpdate closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/monodrag.dart:871:40 @ monodrag.dart:871
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/monodrag.dart:871:40 trampoline @ main.dart.wasm:0x5c7749
$GestureRecognizer.invokeCallback @ recognizer.dart:345
$DragGestureRecognizer._checkUpdate @ monodrag.dart:871
$DragGestureRecognizer.handleEvent @ monodrag.dart:713
$DragGestureRecognizer.handleEvent tear-off trampoline @ main.dart.wasm:0x5c6dd3
$PointerRouter._dispatch @ pointer_router.dart:97
$PointerRouter._dispatchEventToRoutes closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:138:26 @ pointer_router.dart:140
$closure wrapper at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:138:26 trampoline @ main.dart.wasm:0x3ef066
$_DefaultMap&_HashFieldBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.forEach @ compact_hash.dart:682
$PointerRouter._dispatchEventToRoutes @ pointer_router.dart:138
$PointerRouter.route @ pointer_router.dart:128
$_MixinApplication192&BindingBase&GestureBinding.handleEvent @ binding.dart:528
$_MixinApplication192&BindingBase&GestureBinding.dispatchEvent @ binding.dart:498
$_MixinApplication197&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding.dispatchEvent @ binding.dart:473
$_MixinApplication192&BindingBase&GestureBinding._handlePointerEventImmediately @ binding.dart:437
$_MixinApplication192&BindingBase&GestureBinding.handlePointerEvent @ binding.dart:394
$_MixinApplication192&BindingBase&GestureBinding._flushPointerEventQueue @ binding.dart:341
$_MixinApplication192&BindingBase&GestureBinding._handlePointerDataPacket @ binding.dart:308
$_MixinApplication192&BindingBase&GestureBinding._handlePointerDataPacket tear-off trampoline @ main.dart.wasm:0x98beb6
$invoke1 @ platform_dispatcher.dart:1704
$EnginePlatformDispatcher.invokeOnPointerDataPacket @ platform_dispatcher.dart:292
$ClickDebouncer._sendToFramework @ pointer_binding.dart:451
$ClickDebouncer.onPointerData @ pointer_binding.dart:233
$_PointerAdapter.setup closure at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:1016:60 @ pointer_binding.dart:1043
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:1016:60 trampoline @ main.dart.wasm:0x3966c6
$_PointerAdapter._addPointerEventListener closure at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:948:41 @ pointer_binding.dart:953
$_BaseAdapter.addEventListener closure loggedHandler at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:558:23 @ pointer_binding.dart:576
$closure wrapper at org-dartlang-sdk:///lib/_engine/engine/pointer_binding.dart:558:23 trampoline @ main.dart.wasm:0x39693a
$_RootZone.runUnary @ zone.dart:962
$_RootZone.bindUnaryCallback closure at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 @ zone.dart:917
$closure wrapper at org-dartlang-sdk:///dart-sdk/lib/async/zone.dart:917:12 trampoline @ main.dart.wasm:0x36e438
$_734 @ main.dart.wasm:0x36e3c3
(anonymous) @ main.dart.mjs:216Understand this error
main.dart.mjs:73 �[38;5;9m14:41:19 | ERROR | MAIN | Flutter Error
error: Assertion failed: file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/rendering/box.dart:2267:9
sizeAccessAllowed
"RenderBox.size accessed beyond the scope of resize, layout, or permitted parent access. RenderBox can always access its own size, otherwise, the only object that is allowed to read RenderBox.size is its parent, if they have said they will. It you hit this assert trying to access a child's size, pass \"parentUsesSize: true\" to that child's layout() in RenderTapRegionSurface.performLayout."
at module0.Error._throwWithCurrentStackTrace (errors_patch.dart:19:39)
at module0.AssertionError._throwWithMessage (errors_patch.dart:269:5)
at module0.RenderBox.size closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/rendering/box.dart:2252:12 (box.dart:2267:9)
at module0.RenderBox.size (box.dart:2302:6)
at module0.RenderTapRegionSurface.hitTest (tap_region.dart:230:10)
at module0._MixinApplication7&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.hitTestChildren (proxy_box.dart:131:19)
at module0.RenderBox.hitTest (box.dart:2953:11)
at :8080/module0._MixinApplication7&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.hitTestChildren (http://192.168.3.202:8080/main.dart.wasm:wasm-function[12964]:0x4216e1)�[0m
main.dart.mjs:73 �[38;5;9m14:41:19 | ERROR | MAIN | Flutter Error
error: Assertion failed: file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/rendering/box.dart:2267:9
sizeAccessAllowed
"RenderBox.size accessed beyond the scope of resize, layout, or permitted parent access. RenderBox can always access its own size, otherwise, the only object that is allowed to read RenderBox.size is its parent, if they have said they will. It you hit this assert trying to access a child's size, pass \"parentUsesSize: true\" to that child's layout() in RenderTapRegionSurface.performLayout."
at module0.Error._throwWithCurrentStackTrace (errors_patch.dart:19:39)
at module0.AssertionError._throwWithMessage (errors_patch.dart:269:5)
at module0.RenderBox.size closure at file:///Users/user/.flutter-sdk/flutter/packages/flutter/lib/src/rendering/box.dart:2252:12 (box.dart:2267:9)
at module0.RenderBox.size (box.dart:2302:6)
at module0.RenderTapRegionSurface.hitTest (tap_region.dart:230:10)
at module0._MixinApplication7&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.hitTestChildren (proxy_box.dart:131:19)
at module0.RenderBox.hitTest (box.dart:2953:11)
at :8080/module0._MixinApplication7&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.hitTestChildren (http://192.168.3.202:8080/main.dart.wasm:wasm-function[12964]:0x4216e1)�[0m
main.dart.mjs:73 �[38;5;9m14:41:19 | ERROR | MAIN |
Flutter Doctor output
Doctor output
flutter doctor -v
[✓] Flutter (Channel stable, 3.41.0, on macOS 26.2 25C56 darwin-arm64, locale ru-RU)
[568ms]
• Flutter version 3.41.0 on channel stable at /Users/user/.flutter-sdk/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 44a626f4f0 (3 days ago), 2026-02-10 10:16:12 -0800
• Engine revision 3452d735bd
• Dart version 3.11.0
• DevTools version 2.54.1
• Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop,
enable-windows-desktop, enable-android, enable-ios, cli-animations,
enable-native-assets, omit-legacy-version-file, enable-lldb-debugging,
enable-uiscene-migration
[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [17,4s]
• Android SDK at /Users/user/Library/Android/sdk
• Emulator version 36.2.12.0 (build_id 14214601) (CL:N/A)
• Platform android-36, build-tools 36.1.0
• ANDROID_HOME = /Users/user/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
This is the JDK bundled with the latest Android Studio installation on this machine.
To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
• Java version OpenJDK Runtime Environment (build 21.0.8+-14196175-b1038.72)
• All Android licenses accepted.
[!] Xcode - develop for iOS and macOS (Xcode 26.2) [705ms]
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 17C52
✗ CocoaPods installed but not working.
You appear to have CocoaPods installed but it is not working.
This can happen if the version of Ruby that CocoaPods was installed with is
different from the one being used to invoke it.
This can usually be fixed by re-installing CocoaPods.
For re-installation instructions, see
https://guides.cocoapods.org/using/getting-started.html#installation
[✓] Chrome - develop for the web [7ms]
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Connected device (4 available) [11,4s]
• SM G973F (mobile) • RF8N326GSDY • android-arm64 •
Android 12 (API 31)
• macOS (desktop) • macos • darwin-arm64 •
macOS 26.2 25C56 darwin-arm64
• Chrome (web) • chrome • web-javascript •
Google Chrome 144.0.7559.133
[✓] Network resources [12,1s]
• All expected network resources are available.
! Doctor found issues in 1 category.
Steps to reproduce
Before crash App works good, without freezes. After this Runtime error - Interface completely freezes, but main thread works good (other business-logic logs system add to console; and our test js-overlay fps counter, what works in JS in index.html entry point, not freezing and works good)
Memory Profiling Analysis of the UI Freeze
In addition to the runtime errors, we have conducted a memory analysis using the Chrome DevTools Memory profiler, which has revealed a strong correlation between the UI freeze and a specific memory allocation event.
Observations:
At the exact moment the application's UI becomes unresponsive, we observe a sudden and significant memory allocation.
Large Memory Spike: A
SharedArrayBufferconstructor (e.g.,SharedArrayBuffer@4299775) abruptly allocates approximately 30 MB of memory. This is a major anomaly, as other object allocations are typically orders of magnitude smaller (usually less than 500 KB each).Persistent Allocation: This ~30 MB memory block is not released and is held for the duration of the freeze. The memory profiler indicates it is retained in the heap.
Difficulty with Inspection: When inspecting the heap snapshot, tracing the origin of this
SharedArrayBufferback to our Dart code is challenging. The object's property tree contains low-level, internal references that do not map directly to our application logic. These references include:backing_store::system / JSArrayBufferData@4320355map::system / Map@414411prototype::SharedArrayBuffer@843133constructor::SharedArrayBuffer()@843109Hypothesis:
We suspect that the UI freeze is triggered by a low-level operation within the Flutter Web engine (likely the SKWasm renderer) that allocates a large
SharedArrayBufferfor a rendering task (such as handling a large texture, complex shader, or render target). A subsequent error, possibly one of theRuntimeErrorexceptions seen in the console, occurs during or after this allocation, leaving the memory allocated but preventing the rendering engine from completing the frame, thus freezing the UI.Here heaptimeline dump (you can see when freezed - after 2.3 min of work we have big 30MB SharedArrayBuffer object):
https://drive.google.com/file/d/1PVo4mU-6eEkWNzldF13rQvfruyVdfB77/view?usp=sharing
Expected results
App works without total freezing interface
Actual results
App every time get total freezing interface after 1-2 min works
Code sample
Code sample
(not dart code, mostly in https://www.gstatic.com/flutter-canvaskit/3452d735bd38224ef2db85ca763d862d6326b17f/skwasm_heavy.wasm)Screenshots or Video
Screenshots / Video demonstration
[Upload media here]
Logs
Logs
Flutter Doctor output
Doctor output