Skip to content

Crash when switching tabs + gesture navigation #2153

@TepesLucian

Description

@TepesLucian

On android 34+ using the bottom-navigation sample with these changes doing the following navigation instructions crashes the app but only when performing back navigation gesture :

15:34:45.857  I  App start on tab Root
15:34:55.300  I  resetRoot Screen2(label=Screen 2) saveState true restoreState true
15:34:56.061  I  resetRoot Root(label=Root) saveState true restoreState true
15:34:56.915  I  goTo Screen1
15:34:58.057  I  resetRoot Screen2(label=Screen 2) saveState true restoreState false
15:35:01.357  I  resetRoot Root(label=Root) saveState true restoreState true
15:35:03.431  I  pop Screen1 <----- doing back gesture navigation crashes after. Tapping emulator back button works fine
15:35:04.190  I  resetRoot Screen2(label=Screen 2) saveState true restoreState true
15:35:04.260  E  FATAL EXCEPTION: main (Ask Gemini)
                 Process: com.slack.circuit.sample.navigation, PID: 19652
                 java.lang.IllegalArgumentException: Key _registry_1b7cbfba-b552-4183-9853-18db890e5528 was used multiple times 
                 	at androidx.compose.runtime.saveable.SaveableStateHolderImpl$SaveableStateProvider$1$1$1.invoke(SaveableStateHolder.kt:84)
                 	at androidx.compose.runtime.saveable.SaveableStateHolderImpl$SaveableStateProvider$1$1$1.invoke(SaveableStateHolder.kt:83)
                 	at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:83)
                 	at androidx.compose.runtime.internal.RememberEventDispatcher.dispatchRememberList(RememberEventDispatcher.kt:182)
                 	at androidx.compose.runtime.internal.RememberEventDispatcher.dispatchRememberObservers(RememberEventDispatcher.kt:174)
                 	at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:1044)
                 	at androidx.compose.runtime.CompositionImpl.applyLateChanges(Composition.kt:1077)
                 	at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:697)
                 	at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:591)
                 	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:1568)
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1579)
                 	at android.view.Choreographer.doCallbacks(Choreographer.java:1179)
                 	at android.view.Choreographer.doFrame(Choreographer.java:1104)
                 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1553)
                 	at android.os.Handler.handleCallback(Handler.java:995)
                 	at android.os.Handler.dispatchMessage(Handler.java:103)
                 	at android.os.Looper.loopOnce(Looper.java:248)
                 	at android.os.Looper.loop(Looper.java:338)
                 	at android.app.ActivityThread.main(ActivityThread.java:9067)
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932)
                 	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.runtime.PausableMonotonicFrameClock@cf507ee, androidx.compose.ui.platform.MotionDurationScaleImpl@cd3148f, StandaloneCoroutine{Cancelling}@bbd831c, AndroidUiDispatcher@14b8b25]

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions