Skip to content

Occasional bursts of "Null check operator used on a null value" on the web #162868

@dmitry-fbm

Description

@dmitry-fbm

Steps to reproduce

Cannot reproduce that locally, very few users (spotted just 3 at the moment) experience such issue; also don't know how this impacts user experience, nobody complained yet. However when happens, produces bursts of 100-200 errors in a row, totally flooding logs - like if the error happened upon rendering each frame. One thing in common I noticed is that two users out of three are on iOS 16.7.3, device info like:
Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1
Third was MacOS:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.2 Safari/605.1.15.

As you see, all OS versions are very dated, however still are among supported platforms.

Most likely, the issue is related to upgrade to Flutter 3.27.3 - hadn't been noticed in earlier versions.

Can't supply reproducible code sample as there are no reference to our code in the log, see below. I understand the description is very blurry, however the issue is absolutely critical - cannot rollout this version to a wider audience, this would flood us with errors. Would appreciate someone looking into this.

Thanks

Expected results

Clean logs

Actual results

Bursts of Null check operator used on a null value errors

Code sample

Code sample
// No reproducible sample

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
dart://_internal/js_shared/lib/js_util_patch.dart 147:10            CanvasKitExtension.MakeGrContext
org-dartlang-sdk:///lib/_engine/engine/canvaskit/surface.dart 228:5                           Surface.ensureSurface
org-dartlang-sdk:///lib/_engine/engine/canvaskit/surface.dart 504:5                           Surface.initialize
org-dartlang-sdk:///lib/_engine/engine/canvaskit/display_canvas_factory.dart 24:29            DisplayCanvasFactory.baseCanvas
org-dartlang-sdk:///lib/_engine/engine/canvaskit/multi_surface_rasterizer.dart 55:5           MultiSurfaceViewRasterizer.prepareToDraw
org-dartlang-sdk:///lib/_engine/engine/canvaskit/rasterizer.dart 60:5                         ViewRasterizer.draw
dart://_internal/js_runtime/lib/async_patch.dart 311:19             _wrapJsFunctionForAsync
dart://_internal/js_runtime/lib/async_patch.dart 336:23             _wrapJsFunctionForAsync.
dart://_internal/js_runtime/lib/async_patch.dart 241:3              _asyncStartSync
org-dartlang-sdk:///lib/_engine/engine/canvaskit/rasterizer.dart 45:19                        ViewRasterizer.draw
org-dartlang-sdk:///lib/_engine/engine/canvaskit/rasterizer.dart 45:19                        ViewRasterizer.draw
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 451:11                         CanvasKitRenderer._renderScene
dart://_internal/js_runtime/lib/async_patch.dart 311:19             _wrapJsFunctionForAsync
dart://_internal/js_runtime/lib/async_patch.dart 336:23             _wrapJsFunctionForAsync.
dart://_internal/js_runtime/lib/async_patch.dart 241:3              _asyncStartSync
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 448:5                          CanvasKitRenderer._renderScene
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 448:5                          CanvasKitRenderer._renderScene
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 425:13                         CanvasKitRenderer._kickRenderLoop
dart://_internal/js_runtime/lib/async_patch.dart 311:19             _wrapJsFunctionForAsync
dart://_internal/js_runtime/lib/async_patch.dart 336:23             _wrapJsFunctionForAsync.
dart://_internal/js_runtime/lib/async_patch.dart 241:3              _asyncStartSync
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 422:23                         CanvasKitRenderer._kickRenderLoop
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 422:23                         CanvasKitRenderer._kickRenderLoop
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 417:15                         CanvasKitRenderer.renderScene
dart://_internal/js_runtime/lib/async_patch.dart 311:19             _wrapJsFunctionForAsync
dart://_internal/js_runtime/lib/async_patch.dart 336:23             _wrapJsFunctionForAsync.
dart://_internal/js_runtime/lib/async_patch.dart 241:3              _asyncStartSync
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 401:26                         CanvasKitRenderer.renderScene
org-dartlang-sdk:///lib/_engine/engine/canvaskit/renderer.dart 401:26                         CanvasKitRenderer.renderScene
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 839:22                        EnginePlatformDispatcher.render
dart://_internal/js_runtime/lib/async_patch.dart 311:19             _wrapJsFunctionForAsync
dart://_internal/js_runtime/lib/async_patch.dart 336:23             _wrapJsFunctionForAsync.
dart://_internal/js_runtime/lib/async_patch.dart 241:3              _asyncStartSync
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 822:30                        EnginePlatformDispatcher.render
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 822:30                        EnginePlatformDispatcher.render
org-dartlang-sdk:///lib/_engine/engine/window.dart 106:5                                      RenderView.compositeFrame
../../../../../../flutter/packages/flutter/lib/src/rendering/binding.dart 614:20              RendererBinding.drawFrame
../../../../../../flutter/packages/flutter/lib/src/widgets/binding.dart 1178:13               _WidgetsFlutterBinding&BindingBase&GestureBinding&SchedulerBinding&ServicesBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame
../../../../../../flutter/packages/flutter/lib/src/rendering/binding.dart 475:5               RendererBinding._handlePersistentFrameCallback
dart://_internal/js_runtime/lib/js_helper.dart 2352:9               Closure.cspForwardCall
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1397:7              SchedulerBinding._invokeFrameCallback
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1390:8              SchedulerBinding._invokeFrameCallback[function-entry$2]
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1318:9              SchedulerBinding.handleDrawFrame
../../../../../../flutter/packages/flutter/lib/src/scheduler/binding.dart 1176:5              SchedulerBinding._handleDrawFrame
dart://_internal/js_runtime/lib/js_helper.dart 2342:9               Closure.cspForwardCall
dart://async/zone.dart 1414:12                                      _rootRun
dart://async/zone.dart 1405:3                                       _rootRun[function-entry$4]
dart://async/zone.dart 1316:34                                      _CustomZone.run
dart://async/zone.dart 1225:7                                       _CustomZone.runGuarded
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 1410:9                        invoke
org-dartlang-sdk:///lib/_engine/engine/platform_dispatcher.dart 310:5                         initializeEngineServices..
dart://_internal/js_runtime/lib/js_allow_interop_patch.dart 347:27  _callDartFunctionFast1

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.27.3, on macOS 14.6.1 23G93 darwin-arm64, locale en-US)
    • Flutter version 3.27.3 on channel stable at /Users/ilija/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c519ee916e (2 weeks ago), 2025-01-21 10:32:23 -0800
    • Engine revision e672b006cb
    • Dart version 3.6.1
    • DevTools version 2.40.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/ilija/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/ilija/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Connected device (3 available)            
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 14.6.1 23G93 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 14.6.1 23G93 darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome 132.0.6834.160

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: productionIssues experienced in live production appsc: crashStack traces logged to the consolee: web_canvaskitCanvasKit (a.k.a. Skia-on-WebGL) rendering backend for Webengineflutter/engine related. See also e: labels.needs repro infoAutomated crash report whose cause isn't yet knownplatform-webWeb applications specificallyteam-webOwned by Web platform teamtriaged-webTriaged by Web platform team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions