Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App crashes with a stacktrace from NR component/action "com.newrelic.agent.android.instrumentation.androidx.navigation.NavigationController.navigateUp" #319

Open
luongvo opened this issue Nov 29, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@luongvo
Copy link

luongvo commented Nov 29, 2024

Description

We got a reported crash on both Crashlytics & NR regarding the navigation logic with stacktrace from NR component/action com.newrelic.agent.android.instrumentation.androidx.navigation.NavigationController.navigateUp.

Steps to Reproduce

N/A

Expected Behavior

No crash related to NR.

Relevant Logs / Console output

          Fatal Exception: java.util.NoSuchElementException: List is empty.
       at kotlin.collections.CollectionsKt__MutableCollectionsKt.removeLast(MutableCollections.kt:257)
       at androidx.navigation.NavController.tryRelaunchUpToExplicitStack(NavController.kt:881)
       at androidx.navigation.NavController.navigateUp(NavController.kt:854)
       at com.newrelic.agent.android.instrumentation.androidx.navigation.NavigationController.navigateUp(NavigationController.java)
       at com.cbtl.nexus.navigation.AppNavigationKt$navigate$1.invoke(AppNavigation.kt:204)
       at com.cbtl.nexus.navigation.AppNavigationKt$navigate$1.invoke(AppNavigation.kt)
       at com.cbtl.nexus.navigation.AppNavigationKt.throttleNavigation(AppNavigation.kt:249)
       at com.cbtl.nexus.navigation.AppNavigationKt.navigate(AppNavigation.kt:198)
       at com.cbtl.nexus.navigation.AppNavigationKt.navigate$default(AppNavigation.kt:195)
       at com.cbtl.nexus.navigation.extensions.NavigationExtKt.navigateAppDestinationUp(NavigationExt.kt:185)
       at com.cbtl.nexus.navigation.navgraphs.MainNavGraphKt$mainNavGraph$1$14$2.invoke(MainNavGraph.kt:718)
       at com.cbtl.nexus.navigation.navgraphs.MainNavGraphKt$mainNavGraph$1$14$2.invoke(MainNavGraph.kt)
       at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke-k-4lQ0M(Clickable.kt:639)
       at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke(Clickable.kt:633)
       at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend(TapGestureDetector.kt:255)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
       at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:165)
       at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:154)
       at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
       at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:359)
       at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:719)
       at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:598)
       at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:620)
       at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:1044)
       at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:387)
       at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
       at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
       at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:229)
       at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:144)
       at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:120)
       at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1999)
       at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1950)
       at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1834)
       at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3923)
       at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
       at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3923)
       at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
       at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3923)
       at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
       at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3923)
       at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
       at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3923)
       at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
       at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3923)
       at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
       at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:1016)
       at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1962)
       at android.app.Activity.dispatchTouchEvent(Activity.java:4265)
       at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
       at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:974)
       at android.view.View.dispatchPointerEvent(View.java:15335)
       at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7815)
       at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7588)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6922)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6979)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6945)
       at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7143)
       at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6953)
       at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7200)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6926)
       at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6979)
       at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6945)
       at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6953)
       at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6926)
       at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:10400)
       at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:10248)
       at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:10204)
       at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:10532)
       at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:259)
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:335)
       at android.os.Looper.loopOnce(Looper.java:186)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Your Environment

  • OS: Android 12
  • Device: Galaxy A02s, Oppo A58, Huawei P30 Lite, Lenovo Tab P11 Plus
  • NR agent version: 7.5.0
  • Number of crashes: 6 times on these 4 device models.

Additional context

N/A

@luongvo luongvo added the bug Something isn't working label Nov 29, 2024
@ndesai-newrelic
Copy link
Contributor

@luongvo did you enable jetpack feature flag ?

@luongvo
Copy link
Author

luongvo commented Dec 6, 2024

@ndesai-newrelic I'm using both NR & Crashlytics at the same time. Could you please point out to me what's the "jetpack feature flag"? 🤔

@ndesai-newrelic
Copy link
Contributor

@luongvo I don't think the crash is caused by New Relic, but it's related to your navigation stack. In some situations, the list gets emptied, which causes the crash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants