Skip to content

[firebase_crashlytics]: iOS. The values ​​passed to the FirebaseCrashlytics.recordError differ from the values ​​displayed in the Firebase Console reports. #17711

@sham0688

Description

@sham0688

Is there an existing issue for this?

  • I have searched the existing issues.

Which plugins are affected?

Crashlytics

Which platforms are affected?

iOS

Description

In iOS exception and reason ​​passed to the FirebaseCrashlytics.recordError differ from the flutter_error_exception and ​​flutter_error_reason displayed in the Firebase Console reports on Key tab.

Example using the recordError method:

FirebaseCrashlytics.instance.recordError(StateError('Illegal state error!'), reason: "onRefresh");

Open the Firebase console and find an error in the iOS:Crashlytics dashboard. In the error report, on the Keys tab, I see:

flutter_error_exception | Bad state: Illegal state error!
-- | --
flutter_error_reason | thrown Bad state: Illegal state error!. Error thrown onRefresh.

At the same time, in the Android:Crashlytics dashboard. In the error report on the "Key" tab I see:

flutter_error_exception | Bad state: Illegal state error!
-- | --
flutter_error_reason | thrown onRefresh

The problem is that in iOS the parameter flutter_error_reason becomes not static, but dynamic, and in this form it cannot be used to search for error reports. This search query key:flutter_error_reason value:throw onRefresh works for Android and does not work for iOS.

Reproducing the issue

void _refresh() {
  try {
    throw StateError('Illegal state error!');
  } catch (error, stack) {
    FirebaseCrashlytics.instance.recordError(
      error,
      stack,
      reason: "onRefresh",
      printDetails: true,
    );
  }
}

Firebase Core version

3.14.0

Flutter Version

3.29.3

Relevant Log Output

iOS

flutter: ----------------FIREBASE CRASHLYTICS----------------
flutter: The following exception was thrown onRefresh:
flutter: Bad state: Illegal state error!
flutter: 
#0      __RefreshButtonState._refresh (package:sample/screens/wait/refresh_button.dart:52:7)
#1      _InkResponseState.handleTap (package:flutter/src/material/ink_well.dart:1185:21)
#2      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:357:24)
#3      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:653:11)
#4      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:307:5)
#5      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:240:7)
#6      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:718:9)
#7      PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:97:12)
#8      PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)
#9      _LinkedHashMapMixin.forEach (dart:_compact_hash:763:13)
#10     PointerRouter._dispatchEventToRoutes (package:flutter/src/g<…>
flutter: ----------------------------------------------------


Android

I/flutter (16005): ----------------FIREBASE CRASHLYTICS----------------
I/flutter (16005): The following exception was thrown onRefresh:
I/flutter (16005): Bad state: Illegal state error!
I/flutter (16005): #0      __RefreshButtonState._refresh (package:sample/screens/wait/refresh_button.dart:52:7)
I/flutter (16005): #1      _InkResponseState.handleTap (package:flutter/src/material/ink_well.dart:1185:21)
I/flutter (16005): #2      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:357:24)
I/flutter (16005): #3      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:653:11)
I/flutter (16005): #4      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:307:5)
I/flutter (16005): #5      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:240:7)
I/flutter (16005): #6      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:718:9)
I/flutter (16005): #7      PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:97:12)
I/flutter (16005): #8      PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)
I/flutter (16005): #9      _LinkedHashMapMixin.forEach (dart:_compact_hash:763:13)
I/flutter (16005): #10     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.
I/flutter (16005): ----------------------------------------------------

Flutter dependencies

Expand Flutter dependencies snippet
Dart SDK 3.7.2
Flutter SDK 3.29.2

dependencies:
- firebase_analytics 11.5.0 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_core 3.14.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 4.3.7 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- dio 5.8.0+1 [async collection http_parser meta path dio_web_adapter]

transitive dependencies:
- firebase_analytics_platform_interface 4.4.0 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.5.10+13 [_flutterfire_internals firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins]
- firebase_core_platform_interface 5.4.0 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.23.0 [firebase_core_platform_interface flutter flutter_web_plugins meta web]
- firebase_crashlytics_platform_interface 3.8.7 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_messaging 15.2.7 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_messaging_platform_interface 4.6.7 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 3.10.7 [_flutterfire_internals firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins meta web]

Additional context and comments

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions