Skip to content

Occasional "IllegalStateException: Restarter must be created only during owner's initialization stage" #570

@rjrjr

Description

@rjrjr

I can't reproduce this, but we're seeing a steady stream in production.

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.squareup.apos/com.squareup.ui.main.MainActivity}: java.lang.IllegalStateException: Restarter must be created only during owner's initialization stage
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3031)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3166)
        at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:4929)
        at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4838)
        at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1883)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6971)
        at java.lang.reflect.Method.invoke(Method.java:-2)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:865)

Caused by: java.lang.IllegalStateException: Restarter must be created only during owner's initialization stage
        at androidx.savedstate.SavedStateRegistryController.performRestore(SavedStateRegistryController.java:58)
        at com.squareup.workflow1.ui.backstack.StateRegistryAggregator.restoreRegistryControllerIfReady(StateRegistryAggregator.kt:195)
        at com.squareup.workflow1.ui.backstack.ViewStateCache$registryHolder$2.invoke(ViewStateCache.kt:54)
        at com.squareup.workflow1.ui.backstack.ViewStateCache$registryHolder$2.invoke(ViewStateCache.kt:52)
        at com.squareup.workflow1.ui.backstack.StateRegistryAggregator.restoreFromBundle(StateRegistryAggregator.kt:228)
        at com.squareup.workflow1.ui.backstack.StateRegistryAggregator.access$restoreFromBundle(StateRegistryAggregator.kt:39)
        at com.squareup.workflow1.ui.backstack.StateRegistryAggregator$lifecycleObserver$1.onStateChanged(StateRegistryAggregator.kt:87)
        at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)
        at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:265)
        at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:307)
        at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:148)
        at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:134)
        at androidx.lifecycle.ReportFragment.dispatch(ReportFragment.java:68)
        at androidx.lifecycle.ReportFragment.dispatch(ReportFragment.java:144)
        at androidx.lifecycle.ReportFragment.onActivityCreated(ReportFragment.java:102)
        at android.app.Fragment.performActivityCreated(Fragment.java:2531)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1318)
        at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1576)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1637)
        at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3046)
        at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2998)
        at android.app.FragmentController.dispatchActivityCreated(FragmentController.java:182)
        at android.app.Activity.performCreate(Activity.java:7249)
        at android.app.Activity.performCreate(Activity.java:7233)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1287)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3011)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3166)
        at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:4929)
        at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4838)
        at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1883)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6971)
        at java.lang.reflect.Method.invoke(Method.java:-2)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:865)

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinguiRelated to UI integration

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions