Skip to content

[google_maps_flutter_web] Bad state: Cannot add new events after calling close #75818

@ghost

Description

Steps to Reproduce

https://github.com/amritoperto/google_maps_test

  1. Run flutter run. make sure it runs on web
  2. Press the + fab repeatedly until you see the error, sometimes it takes a few presses but it happens a lot quicker in a production app. Its just in this min repro that it takes quite a few presses of the fab.

Expected results:
No errors in the logs

Actual results:
An Error in the logs

errors.dart:187 Uncaught (in promise) Error: Bad state: Cannot add new events after calling close
    at Object.throw_ [as throw] (errors.dart:236)
    at _AsyncBroadcastStreamController.new.add (broadcast_stream_controller.dart:243)
    at google_maps_controller.dart:167
    at _RootZone.runUnaryGuarded (zone.dart:1546)
    at _ControllerSubscription.new.[_sendData] (stream_impl.dart:341)
    at _ControllerSubscription.new.[_add] (stream_impl.dart:271)
    at _SyncStreamController.new.[_sendData] (stream_controller.dart:733)
    at _SyncStreamController.new.[_sendData] (stream_controller.dart:441)
    at _SyncStreamController.new.[_add] (stream_controller.dart:607)
    at _SyncStreamController.new.add (stream_controller.dart:554)
    at SubscribeStreamProvider.new.add (async.dart:47)
    at async.dart:22
    at Object._checkAndCall (operations.dart:324)
    at Object.dcall (operations.dart:329)
    at google_maps_src.g.dart:7152
    at Ti.wrapper (js_patch.dart:355)
    at gf.hj (js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:210)
    at Object._.M.trigger (js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:207)
    at b (map.js:33)
[+3277 ms] DwdsInjector: Received request for entrypoint at http://localhost:65479/main_module.bootstrap.js
[        ] MetadataProvider: Loading debug metadata...
[   +5 ms] MetadataProvider: Loaded debug metadata
[   +3 ms] DwdsInjector: Injected debugging metadata for entrypoint at http://localhost:65479/main_module.bootstrap.js
[+2839 ms] 0
[   +1 ms] 0
[+1567 ms] You must enable Billing on the Google Cloud Project at https://console.cloud.google.com/project/_/billing/enable Learn more at
                    https://developers.google.com/maps/gmp-get-started
[ +701 ms] 1
[        ] 1
[ +174 ms] 2
[        ] 0
[ +164 ms] 3
[        ] 1
[ +153 ms] 4
[        ] 0
[ +134 ms] 5
[        ] 1
[ +146 ms] 6
[        ] 0
[ +162 ms] 7
[        ] 1
[ +134 ms] 8
[        ] 0
[ +139 ms] 9
[        ] 1
[ +150 ms] 10
[   +1 ms] 0
[ +150 ms] 11
[        ] 1
[  +85 ms] Error: Bad state: Cannot add new events after calling close
               at Object.throw_ [as throw] (http://localhost:65479/dart_sdk.js:5331:11)
               at _AsyncBroadcastStreamController.new.add (http://localhost:65479/dart_sdk.js:32888:55)
               at http://localhost:65479/packages/google_maps_flutter_web/src/types.dart.lib.js:528:35
               at _RootZone.runUnaryGuarded (http://localhost:65479/dart_sdk.js:38812:11)
               at _ControllerSubscription.new.[_sendData] (http://localhost:65479/dart_sdk.js:32429:22)
               at _ControllerSubscription.new.[_add] (http://localhost:65479/dart_sdk.js:32375:26)
               at _SyncStreamController.new.[_sendData] (http://localhost:65479/dart_sdk.js:35337:34)
               at _SyncStreamController.new.[_sendData] (http://localhost:65479/dart_sdk.js:35447:32)
               at _SyncStreamController.new.[_add] (http://localhost:65479/dart_sdk.js:35145:26)
               at _SyncStreamController.new.add (http://localhost:65479/dart_sdk.js:35110:19)
               at SubscribeStreamProvider.new.add (http://localhost:65479/packages/js_wrapping/util/async.dart.lib.js:76:22)
               at http://localhost:65479/packages/google_maps/util/async.dart.lib.js:1454:21
               at Object._checkAndCall (http://localhost:65479/dart_sdk.js:5541:16)
               at Object.dcall (http://localhost:65479/dart_sdk.js:5546:17)
               at http://localhost:65479/packages/google_maps/util/async.dart.lib.js:19782:191
               at Ti.wrapper (http://localhost:65479/dart_sdk.js:60942:30)
               at gf.hj (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:210:414)
               at Object._.M.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:207:385)
               at mf (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:84:322)
               at mf (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:84:304)
               at Xw._.N.notify (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:212:888)
               at https://maps.googleapis.com/maps-api-v3/api/js/43/8/map.js:30:392
               at _.ui._.n.Zi (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:242:491)
[ +196 ms] Error: Bad state: Cannot add new events after calling close
                        at Object.throw_ [as throw] (http://localhost:65479/dart_sdk.js:5331:11)
                        at _AsyncBroadcastStreamController.new.add (http://localhost:65479/dart_sdk.js:32888:55)
                        at http://localhost:65479/packages/google_maps_flutter_web/src/types.dart.lib.js:534:33
                        at _RootZone.runUnaryGuarded (http://localhost:65479/dart_sdk.js:38812:11)
                        at _ControllerSubscription.new.[_sendData] (http://localhost:65479/dart_sdk.js:32429:22)
                        at _ControllerSubscription.new.[_add] (http://localhost:65479/dart_sdk.js:32375:26)
                        at _SyncStreamController.new.[_sendData] (http://localhost:65479/dart_sdk.js:35337:34)
                        at _SyncStreamController.new.[_sendData] (http://localhost:65479/dart_sdk.js:35447:32)
                        at _SyncStreamController.new.[_add] (http://localhost:65479/dart_sdk.js:35145:26)
                        at _SyncStreamController.new.add (http://localhost:65479/dart_sdk.js:35110:19)
                        at SubscribeStreamProvider.new.add (http://localhost:65479/packages/js_wrapping/util/async.dart.lib.js:76:22)
                        at http://localhost:65479/packages/google_maps/util/async.dart.lib.js:1454:21
                        at Object._checkAndCall (http://localhost:65479/dart_sdk.js:5541:16)
                        at Object.dcall (http://localhost:65479/dart_sdk.js:5546:17)
                        at http://localhost:65479/packages/google_maps/util/async.dart.lib.js:19782:191
                        at Ti.wrapper (http://localhost:65479/dart_sdk.js:60942:30)
                        at gf.hj (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:210:414)
                        at Object._.M.trigger (https://maps.googleapis.com/maps/api/js?key=AIzaSyBUzRwyZCWi95rYn2vvoLlbbfeqMvpEx0w:207:385)
                        at b (https://maps.googleapis.com/maps-api-v3/api/js/43/8/map.js:33:79)
Analyzing google_maps_test...                                           
No issues found! (ran in 2.7s)
 flutter doctor -v
[✓] Flutter (Channel beta, 1.26.0-17.4.pre, on macOS 11.2.1 20D74 darwin-x64, locale en-CA)
    • Flutter version 1.26.0-17.4.pre at /Users/amritk/Developer/flutter
    • Framework revision 48c9d3e0e1 (5 hours ago), 2021-02-10 11:46:09 -0800
    • Engine revision 2c527d6c7e
    • Dart version 2.12.0 (build 2.12.0-259.8.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/amritk/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.1)
    • 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 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.53.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 88.0.4324.150

• No issues found!

Is it due to a memory leak? Is there a better way to kill the map?

Metadata

Metadata

Assignees

No one assigned

    Labels

    r: invalidIssue is closed as not valid

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions