StreetComplete icon indicating copy to clipboard operation
StreetComplete copied to clipboard

Crash related to Koin Work Manager

Open westnordost opened this issue 2 years ago • 3 comments

I am seeing some crashes in the Google Play Console related to Koin Work Manager.

The crashes are not device specific and also not Android version specific (most happened on Android 12, but there was also a crash on Android 8).

I didn't look deeper into that yet. Maybe @adrianclay can help

java.lang.Error: 
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1168)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.InstanceCreationException: 
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:60)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.InstanceCreationException: 
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:60)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.InstanceCreationException: 
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:60)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.InstanceCreationException: 
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:60)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.InstanceCreationException: 
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:60)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.InstanceCreationException: 
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:60)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.InstanceCreationException: 
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:60)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:21)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:21)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)
Caused by: org.koin.core.error.NoBeanDefFoundException: 
  at org.koin.core.scope.Scope.throwDefinitionNotFound (Scope.kt:304)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:274)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$6.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$6.invoke (OsmApiModule.kt:23)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:21)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:21)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory.create (SingleInstanceFactory.kt:46)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:53)
  at org.koin.core.instance.SingleInstanceFactory$get$1.invoke (SingleInstanceFactory.kt:51)
  at org.koin.mp.KoinPlatformTools.synchronized (PlatformToolsJVM.kt:20)
  at org.koin.core.instance.SingleInstanceFactory.get (SingleInstanceFactory.kt:51)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.get$default (Scope.kt:130)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:53)
  at org.koin.core.instance.FactoryInstanceFactory.get (FactoryInstanceFactory.kt:38)
  at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core (InstanceRegistry.kt:110)
  at org.koin.core.scope.Scope.resolveValue (Scope.kt:254)
  at org.koin.core.scope.Scope.resolveInstance (Scope.kt:241)
  at org.koin.core.scope.Scope.get (Scope.kt:204)
  at org.koin.core.scope.Scope.getOrNull (Scope.kt:172)
  at org.koin.core.scope.Scope.getOrNull$default (Scope.kt:155)
  at org.koin.androidx.workmanager.factory.KoinWorkerFactory.createWorker (KoinWorkerFactory.kt:47)
  at androidx.work.DelegatingWorkerFactory.createWorker (DelegatingWorkerFactory.java:71)
  at androidx.work.WorkerFactory.createWorkerWithDefaultFallback (WorkerFactory.java:83)
  at androidx.work.impl.WorkerWrapper.runWorker (WorkerWrapper.java:245)
  at androidx.work.impl.WorkerWrapper.run (WorkerWrapper.java:137)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:91)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)

westnordost avatar Mar 08 '22 14:03 westnordost

👋🏻 From the stack trace above, I've filter out the non-project specific lines, highlighted and annotated the more interesting lines.

Annotated trace
Caused by: org.koin.core.error.NoBeanDefFoundException: 
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$6.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$6.invoke (OsmApiModule.kt:23)
   single { osmConnection(get<OAuthStore>().oAuthConsumer) }
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:21)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$5.invoke (OsmApiModule.kt:21)
    factory { UserApi(get()) }
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$2.invoke (NotesModule.kt:11)
    factory { AvatarsDownloader(get(), get(named("AvatarsCacheDirectory")) ) }
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$3.invoke (NotesModule.kt:12)
    factory { AvatarsInNotesUpdater(get()) }
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:29)
  at de.westnordost.streetcomplete.data.osmnotes.NotesModuleKt$notesModule$1$7.invoke (NotesModule.kt:17)
    single {
        NoteController(get()).apply {
            // on notes have been updated, avatar images should be downloaded (cached) referenced in note discussions
            addListener(get<AvatarsInNotesUpdater>())
        }
    }
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$1.invoke (OsmApiModule.kt:17)
    factory { Cleaner(get(), get(), get()) }
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:39)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26)
    worker { CleanerWorker(get(), get(), get()) }

I tried to reproduce the error with an emulated version of Android 12 both with the application on screen, and in the background. During testing I was able to get a fully constructed, error free, CleanerWorker multiple times.

I wondered why we see the issue with the CleanerWorker, but not the ChangesetAutoCloserWorker. I have not come up with any thoughts.

I looked over the documentation to compare this app against their recommendations on how to use KoinWorker. I found no difference.

I looked at issues for Koin, to see whether I could see a related issue. I found no clear advice.

  • InsertKoinIO/koin#970 - Same symptoms but not a Worker
  • InsertKoinIO/koin#884 - Same symptoms, no useful advice

My exploration of this problem has reached a dead end. I am happy to continue exploring the bug. If anybody has ideas on how to further diagnose this bug let me know.

adrianclay avatar Mar 11 '22 18:03 adrianclay

I can confirm that all 14 crash reports so far mentioned at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt:26) and not anything in the ElementEditsModule.kt, so it seems the issue is limited to CleanerWorker.

About 70% of all crashes in StreetComplete are caused by tangram-es (see https://github.com/tangrams/tangram-es/issues/2315 ) and while this issue is only responsible for about 10% of crashes, it's one of the top causes for crashes.

Maybe it is actually a bug in koin? If you think it makes sense, maybe you could open a ticket at koin about this? (since you concerned yourself with koin more than me and with tracing the issue, I think you'd be able to supply more useful information to them)

westnordost avatar Mar 17 '22 12:03 westnordost

So, this is a long chain of failures. The root of the issue should usually be the bottom-most Exception:

Caused by org.koin.core.error.NoBeanDefFoundException:
  at org.koin.core.scope.Scope.throwDefinitionNotFound
  at org.koin.core.scope.Scope.resolveValue
  at org.koin.core.scope.Scope.resolveInstance
  at org.koin.core.scope.Scope.get
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt)
  at de.westnordost.streetcomplete.data.OsmApiModuleKt$osmApiModule$1$8.invoke (OsmApiModule.kt)
  at org.koin.core.instance.InstanceFactory.create

So, this is the code in question: https://github.com/streetcomplete/StreetComplete/blob/d74a517a3d5366c285d0513860d72805b7586605/app/src/main/java/de/westnordost/streetcomplete/data/OsmApiModule.kt#L27

Koin cannot resolve OAuthStore, but only for the worker manager. For normal application start, it's fine.

Reduced to what matters and expanded, it is

class StreetCompleteApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        startKoin {
            androidContext(this@StreetCompleteApplication)
            workManagerFactory()
            modules(
                module {
                    single<OsmConnection> {
                        OsmConnection(
                            "https://api.openstreetmap.org/api/0.6/",
                            "StreetComplete 55.0",
                            get<OAuthStore>().oAuthConsumer
                        )
                    }
                    factory<OAuthStore> { OAuthStore(get<SharedPreferences>()) }
                    factory<SharedPreferences> { PreferenceManager.getDefaultSharedPreferences(androidContext()) }
                },
            )
        }
    }
}

westnordost avatar Oct 31 '23 22:10 westnordost