Describe the bug
Rapid double-tap on Up button leads to IllegalArgumentException: NavDisplay backstack cannot be empty.
To Reproduce
Steps to reproduce the behavior:
- Navigate to
v2.OssLicensesMenuActivity.
- Select any license to open details.
- Rapidly double-tap the "Up" button in the TopAppBar.
Actual Result
App crashes on the second tap.
Expected behavior
The second tap should be ignored. The app should return to the previous screen without crashing.
Screenshots

Desktop (please complete the following information):
- Gradle version: 9.1.0
- Android Studio version: 2025.3.2
- Plugin name and version:
play-services-oss-licenses:17.4.0, oss-licenses-plugin:0.11.0
Additional context
Logcat
java.lang.IllegalArgumentException: NavDisplay backstack cannot be empty
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay(NavDisplay.kt:287)
at androidx.navigation3.ui.NavDisplayKt.NavDisplay(Unknown Source:1)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay$lambda$4$NavDisplayKt__NavDisplayKt(Unknown Source:38)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.$r8$lambda$P9Mf3Do1t4N-_9P4T8PgpKaFFzE(Unknown Source:0)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:201)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(ComposerImpl.kt:1690)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(ComposerImpl.kt:2026)
at androidx.compose.runtime.ComposerImpl.doCompose-aFTiNEg(ComposerImpl.kt:2659)
at androidx.compose.runtime.ComposerImpl.recompose-aFTiNEg$runtime(ComposerImpl.kt:2583)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:1080)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:1406)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:159)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2.invokeSuspend$lambda$2(Recomposer.kt:638)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:39)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:108)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1158)
at android.view.Choreographer.doCallbacks(Choreographer.java:950)
at android.view.Choreographer.doFrame(Choreographer.java:874)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1142)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1038)
java.lang.IllegalArgumentException: NavDisplay backstack cannot be empty
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay(NavDisplay.kt:287)
at androidx.navigation3.ui.NavDisplayKt.NavDisplay(Unknown Source:1)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.NavDisplay$lambda$4$NavDisplayKt__NavDisplayKt(Unknown Source:38)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt.$r8$lambda$P9Mf3Do1t4N-_9P4T8PgpKaFFzE(Unknown Source:0)
at androidx.navigation3.ui.NavDisplayKt__NavDisplayKt$$ExternalSyntheticLambda3.invoke(D8$$SyntheticClass:0)
at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:201)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(ComposerImpl.kt:1690)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(ComposerImpl.kt:2026)
at androidx.compose.runtime.ComposerImpl.doCompose-aFTiNEg(ComposerImpl.kt:2659)
at androidx.compose.runtime.ComposerImpl.recompose-aFTiNEg$runtime(ComposerImpl.kt:2583)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:1080)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:1406)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:159)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2.invokeSuspend$lambda$2(Recomposer.kt:638)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:39)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:108)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1158)
at android.view.Choreographer.doCallbacks(Choreographer.java:950)
at android.view.Choreographer.doFrame(Choreographer.java:874)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1142)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1038)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@379dd10, androidx.compose.ui.platform.MotionDurationScaleImpl@69e3009, StandaloneCoroutine{Cancelling}@3f3620e, AndroidUiDispatcher@b55342f]
Describe the bug
Rapid double-tap on Up button leads to
IllegalArgumentException: NavDisplay backstack cannot be empty.To Reproduce
Steps to reproduce the behavior:
v2.OssLicensesMenuActivity.Actual Result
App crashes on the second tap.
Expected behavior
The second tap should be ignored. The app should return to the previous screen without crashing.
Screenshots

Desktop (please complete the following information):
play-services-oss-licenses:17.4.0,oss-licenses-plugin:0.11.0Additional context
Logcat