-
-
Notifications
You must be signed in to change notification settings - Fork 277
Closed
Labels
Description
Related to: #643
Platform:
- Dart
- Flutter Android or iOS
- Flutter Web
IDE:
- VSCode
- IntelliJ/AS
- XCode
- Other, which one?
split-debug-info and obfuscate (Flutter Android or iOS) or CanvasKit (Flutter Web):
- Enabled
- Disabled
Platform installed with:
- pub.dev
- GitHub
The version of the SDK (See pubspec.lock):
6.3.0-alpha.1
I have the following issue:
When using the SentryNavigatorObserver and triggering a navigation the following Exception gets thrown, when the router arguments are a non-string type object:
[error] Exception caught by widgets library
type '<MyClass>' is not a subtype of type 'String'
#0 SentryTracer.setData (package:sentry/src/sentry_tracer.dart:89:19)
#1 SentryNavigatorObserver._startTransaction (package:sentry_flutter/src/navigation/sentry_navigator_observer.dart:141:21)
#2 SentryNavigatorObserver.didPush (package:sentry_flutter/src/navigation/sentry_navigator_observer.dart:74:5)
#3 _NavigatorPushObservation.notify (package:flutter/src/widgets/navigator.dart:3116:14)
#4 List.forEach (dart:core-patch/growable_array.dart:410:8)
#5 NavigatorState._flushObserverNotifications (package:flutter/src/widgets/navigator.dart:3923:27)
#6 NavigatorState._flushHistoryUpdates (package:flutter/src/widgets/navigator.dart:3882:5)
#7 NavigatorState._updatePages (package:flutter/src/widgets/navigator.dart:3762:5)
#8 NavigatorState.didUpdateWidget (package:flutter/src/widgets/navigator.dart:3433:7)
#9 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:57)
#10 Element.updateChild (package:flutter/src/widgets/framework.dart:3370:15)
#11 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4613:16)
#12 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4763:11)
#13 Element.rebuild (package:flutter/src/widgets/framework.dart:4311:5)
#14 StatefulElement.update (package:flutter/src/widgets/framework.dart:4795:5)
#15 Element.updateChild (package:flutter/src/widgets/framework.dart:3370:15)
#16 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4613:16)
#17 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4763:11)
#18 Element.rebuild (package:flutter/src/widgets/framework.dart:4311:5)
#19 StatefulElement.update (package:flutter/src/widgets/framework.dart:4795:5)
#20 Element.updateChild (package:flutter/src/widgets/framework.dart:3370:15)
#21 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4613:16)
#22 Element.rebuild (package:flutter/src/widgets/framework.dart:4311:5)
#23 ProxyElement.update (package:flutter/src/widgets/framework.dart:4943:5)
#24 Element.updateChild (package:flutter/src/widgets/framework.dart:3370:15)
#25 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4613:16)
#26 Element.rebuild (package:flutter/src/widgets/framework.dart:4311:5)
#27 ProxyElement.update (package:flutter/src/widgets/framework.dart:4943:5)
#28 Element.updateChild (package:flutter/src/widgets/framework.dart:3370:15)
#29 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4613:16)
#30 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4763:11)
#31 Element.rebuild (package:flutter/src/widgets/framework.dart:4311:5)
#32 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2578:33)
#33 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
#34 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#35 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1145:15)
#36 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#37 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#38 _rootRun (dart:async/zone.dart:1428:13)
#39 _CustomZone.run (dart:async/zone.dart:1328:19)
#40 _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
#41 _invoke (dart:ui/hooks.dart:150:10)
#42 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:270:5)
#43 _drawFrame (dart:ui/hooks.dart:114:31)A quick and dirty fix could be stringifying the object before passing it to setData:
if (arguments != null) {
_transaction?.setData('route_settings_arguments', arguments.toString());
}Steps to reproduce:
- Initialize a navigation with an Object as the
arguments
const RouteSettings(name: 'Test', arguments: ComplexObject());
- An Exception should be thrown in sentry_tracer.dart:89
- To Test the sentry_flutter example can be modified here
Actual result:
- An exception is thrown
Expected result:
- No exception should be thrown and the navigation transaction should be sent to sentry.
PlugFox
Metadata
Metadata
Assignees
Labels
Projects
Status
Done