Skip to content

🐛 [Flutter Database] MissingPluginException and app crash on iOS #8015

@AlaaCherbib

Description

@AlaaCherbib

Bug report

Describe the bug
The iOS app crashes quite often and I see in the console the following error:

`The following MissingPluginException was thrown while de-activating platform stream on channel elements/German/tables/-MV_kxHs0GdvgoEWXK1--[DEFAULT]-null-DatabaseEventType.value-[]#35:
MissingPluginException(No implementation found for method cancel on channel elements/German/tables/-MV_kxHs0GdvgoEWXK1--[DEFAULT]-null-DatabaseEventType.value-[]#35)

When the exception was thrown, this was the stack:
#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:175:7)
#1 EventChannel.receiveBroadcastStream. (package:flutter/src/services/platform_channel.dart:528:9)`

in my Testflight crash log I see the following:

Thread 14 name:
Thread 14:
0   libsystem_kernel.dylib        	0x00000001b7b9b504 mach_msg_trap + 8
1   libsystem_kernel.dylib        	0x00000001b7b9bb9c mach_msg + 76 (mach_msg.c:119)
2   CoreFoundation                	0x0000000180473738 __CFRunLoopServiceMachPort + 372 (CFRunLoop.c:2646)
3   CoreFoundation                	0x0000000180477a2c __CFRunLoopRun + 1212 (CFRunLoop.c:3000)
4   CoreFoundation                	0x000000018048b468 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
5   Foundation                    	0x0000000181ca7c94 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 236 (NSRunLoop.m:373)
6   FirebaseDatabase              	0x0000000103b7aed8 -[_FSRRunLoopThread main] + 252 (FSRWebSocket.m:1860)
7   Foundation                    	0x0000000181cf740c __NSThread__start__ + 808 (NSThread.m:972)
8   libsystem_pthread.dylib       	0x00000001f17d79a4 _pthread_start + 148 (pthread.c:891)
9   libsystem_pthread.dylib       
```	0x00000001f17d6ea0 thread_start + 8

I am using latest Firebase plugins:
sdk: '>=2.12.0 <3.0.0'

firebase_core: ^1.12.0
firebase_auth: ^3.3.6
firebase_database: ^9.0.6
firebase_storage: ^10.2.6
firebase_remote_config: ^2.0.0
firebase_analytics: ^9.1.0
firebase_crashlytics: ^2.5.0
firebase_app_check: ^0.0.6+5

my app gets and updates data and is listening to some paths changes and subscriptions are cancelled in dispose method:

### Steps to reproduce

There is no reliable way to reproduce it, it is really random

### Expected behavior

The app should not be crashing

### Sample project
There is no exact action that causes the crash, but this is what I am basically having to observe the changes:

StreamSubscription? changesSubscription;
  Stream<Event>? progressWatcher = FirebaseDatabase.instance.ref().child(tablePath(userUID, tableUID)).onValue
  changesSubscription = progressWatcher?.listen(
      (event) {
        if (!mounted) {
          return;
        }
        setState(() {});
      },
      onError: (Object o) {
        final error = o as FirebaseException;
        print("error plugin ${error.plugin} - error code ${error.code} - message ${error.message} - trace ${error.stackTrace?.toString()}");
      },
    );

@override
  void dispose() {
    changesSubscription?.cancel();
    changesSubscription = null;
    progressWatcher = null;
    super.dispose();
  }


---

## Additional context

Add any other context about the problem here.

---

### Flutter doctor

Run `flutter doctor` and paste the output below:

<details><summary>Click To Expand</summary>


[✓] Flutter (Channel stable, 2.10.0, on macOS 11.6.1 20G224 darwin-x64, locale
    de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.1)
[✓] VS Code (version 1.63.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

• No issues found!



</details>

---

### Flutter dependencies

Run `flutter pub deps -- --style=compact` and paste the output below:

Click To Expand

Dart SDK 2.16.0
Flutter SDK 2.10.0
LearningApp 1.5.0+119


dependencies:
- cool_ui 1.1.0 [back_button_interceptor flutter]
- crypto 3.0.1 [collection typed_data]
- cupertino_icons 1.0.4
- dotted_border 2.0.0+2 [flutter path_drawing]
- easy_localization 3.0.0 [flutter shared_preferences intl args path easy_logger flutter_localizations]
- email_validator 2.0.1
- firebase_analytics 9.1.0 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_app_check 0.0.6+5 [firebase_app_check_platform_interface firebase_app_check_web firebase_core firebase_core_platform_interface flutter]
- firebase_auth 3.3.6 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 1.12.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 2.5.0 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_database 9.0.6 [firebase_core firebase_core_platform_interface firebase_database_platform_interface firebase_database_web flutter]
- firebase_remote_config 2.0.0 [firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface firebase_remote_config_web flutter]
- firebase_storage 10.2.6 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- flutter 0.0.0 [characters collection material_color_utilities meta typed_data vector_math sky_engine]
- flutter_datetime_picker 1.5.1 [flutter]
- flutter_facebook_auth 4.0.1 [flutter flutter_facebook_auth_platform_interface flutter_facebook_auth_web]
- flutter_highlight 0.7.0 [flutter highlight]
- flutter_keyboard_visibility 5.1.1 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_web flutter]
- flutter_linkify 5.0.2 [flutter linkify]
- flutter_local_notifications 9.2.0 [clock flutter flutter_local_notifications_linux flutter_local_notifications_platform_interface timezone]
- flutter_native_image 0.0.6+1 [flutter]
- flutter_native_splash 2.0.1+1 [args image meta path xml yaml universal_io flutter]
- get_it 7.2.0 [async collection]
- google_sign_in 5.2.3 [flutter google_sign_in_platform_interface google_sign_in_web]
- http 0.13.4 [async http_parser meta path]
- image_picker 0.8.4+5 [flutter flutter_plugin_android_lifecycle image_picker_for_web image_picker_platform_interface]
- in_app_review 2.0.4 [flutter in_app_review_platform_interface]
- loader_overlay 2.0.3 [flutter]
- notification_permissions 0.6.1 [flutter]
- open_store 0.2.4 [flutter url_launcher]
- overlay_support 1.2.1 [flutter async]
- package_info 2.0.2 [flutter]
- reorderables 0.4.2 [flutter]
- scrollable_positioned_list 0.2.3 [flutter collection]
- shared_preferences 2.0.12 [flutter shared_preferences_android shared_preferences_ios shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- shimmer 2.0.0 [flutter]
- sign_in_with_apple 3.3.0 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- sizer 2.0.15 [universal_io flutter]
- transparent_image 2.0.0
- tuple 2.0.0 [quiver]
- url_launcher 6.0.18 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- version 2.0.0
- video_player 2.2.18 [flutter video_player_android video_player_avfoundation video_player_platform_interface video_player_web html]
- visibility_detector 0.2.2 [flutter]
- webview_flutter 3.0.0 [flutter webview_flutter_android webview_flutter_platform_interface webview_flutter_wkwebview]

dev dependencies:
- flutter_launcher_icons 0.9.2 [args image path yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph typed_data]

transitive dependencies:
- archive 3.1.11 [crypto path]
- args 2.3.0
- async 2.8.2 [collection meta]
- back_button_interceptor 5.0.0 [collection flutter]
- boolean_selector 2.1.0 [source_span string_scanner]
- characters 1.2.0
- charcode 1.3.1
- clock 1.1.0
- collection 1.15.0
- cross_file 0.3.2 [flutter js meta]
- csslib 0.17.1 [source_span]
- dbus 0.6.8 [args ffi meta xml]
- easy_logger 0.0.2 [flutter]
- fake_async 1.2.0 [clock collection]
- ffi 1.1.2
- file 6.1.2 [meta path]
- firebase_analytics_platform_interface 3.0.5 [firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.4.0+6 [firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- firebase_app_check_platform_interface 0.0.3+5 [firebase_core flutter meta plugin_platform_interface]
- firebase_app_check_web 0.0.5+5 [firebase_app_check_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- firebase_auth_platform_interface 6.1.11 [firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 3.3.7 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.2.4 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.5.4 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_crashlytics_platform_interface 3.1.13 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_platform_interface 0.2.0+5 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_web 0.2.0+5 [firebase_core firebase_core_web firebase_database_platform_interface flutter flutter_web_plugins js]
- firebase_remote_config_platform_interface 1.0.5 [firebase_core flutter meta plugin_platform_interface]
- firebase_remote_config_web 1.0.5 [firebase_core firebase_core_web firebase_remote_config_platform_interface flutter flutter_web_plugins js]
- firebase_storage_platform_interface 4.0.13 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.2.7 [async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- flutter_facebook_auth_platform_interface 3.0.1 [flutter plugin_platform_interface]
- flutter_facebook_auth_web 3.0.0+1 [flutter flutter_web_plugins js flutter_facebook_auth_platform_interface]
- flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
- flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter]
- flutter_local_notifications_linux 0.4.1+1 [flutter flutter_local_notifications_platform_interface dbus path xdg_directories]
- flutter_local_notifications_platform_interface 5.0.0 [flutter plugin_platform_interface]
- flutter_localizations 0.0.0 [flutter intl characters clock collection material_color_utilities meta path typed_data vector_math]
- flutter_plugin_android_lifecycle 2.0.5 [flutter]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta typed_data vector_math]
- google_sign_in_platform_interface 2.1.1 [flutter quiver]
- google_sign_in_web 0.10.0+4 [flutter flutter_web_plugins google_sign_in_platform_interface js pedantic]
- highlight 0.7.0 [collection]
- html 0.15.0 [csslib source_span]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- image 3.1.1 [archive meta xml]
- image_picker_for_web 2.1.5 [flutter flutter_web_plugins image_picker_platform_interface pedantic]
- image_picker_platform_interface 2.4.3 [flutter http plugin_platform_interface cross_file]
- in_app_review_platform_interface 2.0.3 [flutter url_launcher plugin_platform_interface platform]
- intl 0.17.0 [clock path]
- js 0.6.3
- linkify 4.1.0
- matcher 0.12.11 [stack_trace]
- material_color_utilities 0.1.3
- meta 1.7.0
- path 1.8.0
- path_drawing 1.0.0 [vector_math meta path_parsing flutter]
- path_parsing 1.0.0 [vector_math meta]
- path_provider_linux 2.1.5 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_platform_interface 2.0.3 [flutter platform plugin_platform_interface]
- path_provider_windows 2.0.5 [ffi flutter path path_provider_platform_interface win32]
- pedantic 1.11.1
- petitparser 4.4.0 [meta]
- platform 3.1.0
- plugin_platform_interface 2.1.2 [meta]
- process 4.2.4 [file path platform]
- quiver 3.0.1+1 [matcher]
- shared_preferences_android 2.0.10 [flutter shared_preferences_platform_interface]
- shared_preferences_ios 2.0.9 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.0.4 [file flutter path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.2 [flutter shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.3 [flutter flutter_web_plugins shared_preferences_platform_interface]
- shared_preferences_windows 2.0.4 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- sign_in_with_apple_platform_interface 1.0.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 1.0.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface js]
- sky_engine 0.0.99
- source_span 1.8.1 [collection path term_glyph]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- string_scanner 1.1.0 [charcode source_span]
- term_glyph 1.2.0
- test_api 0.4.8 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timezone 0.8.0 [path]
- typed_data 1.3.0 [collection]
- universal_io 2.0.4 [collection crypto meta typed_data]
- url_launcher_android 6.0.14 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.0.14 [flutter url_launcher_platform_interface]
- url_launcher_linux 2.0.3 [flutter]
- url_launcher_macos 2.0.3 [flutter]
- url_launcher_platform_interface 2.0.5 [flutter plugin_platform_interface]
- url_launcher_web 2.0.6 [flutter flutter_web_plugins url_launcher_platform_interface]
- url_launcher_windows 2.0.2 [flutter]
- vector_math 2.1.1
- video_player_android 2.2.17 [flutter video_player_platform_interface]
- video_player_avfoundation 2.2.17 [flutter video_player_platform_interface]
- video_player_platform_interface 5.0.1 [flutter plugin_platform_interface]
- video_player_web 2.0.6 [flutter flutter_web_plugins pedantic video_player_platform_interface]
- webview_flutter_android 2.8.2 [flutter webview_flutter_platform_interface]
- webview_flutter_platform_interface 1.8.1 [flutter plugin_platform_interface]
- webview_flutter_wkwebview 2.7.1 [flutter webview_flutter_platform_interface]
- win32 2.3.10 [ffi]
- xdg_directories 0.2.0+1 [meta path process]
- xml 5.3.1 [collection meta petitparser]
- yaml 3.1.0 [collection source_span string_scanner]


Metadata

Metadata

Assignees

No one assigned

    Labels

    StaleIssue with no recent activityclosed-by-botplatform: iosIssues / PRs which are specifically for iOS.plugin: databaseresolution: needs-reproThis issue could not be reproduced or needs an up to date reproduction on latest FlutterFire plugin.resolution: no-responseCustomer did not respond after some time.type: bugSomething isn't workingtype: crashA compile error or crash

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions