We are using molecule and in bugsnag I've been see...
# squarelibraries
p
We are using molecule and in bugsnag I've been seeing an intermittent failed trySend inside of
immediateClockFlow
. Makes me think that I am somehow emitting twice before the output buffer is able to receive a value. Any tips on how I should hunt that down? Stack trace in 🧵
Copy code
java.lang.IllegalStateException: Trying to call 'getOrThrow' on a failed result of a non-closed channel
        at kotlinx.coroutines.channels.ChannelResult.getOrThrow-impl(SourceFile:919)
        at app.cash.molecule.MoleculeKt$immediateClockFlow$1$1$1.invokeSuspend$lambda$0(SourceFile:90)
        at app.cash.molecule.MoleculeKt$immediateClockFlow$1$1$1.$r8$lambda$frUrQ_zWXBEZlXHF_xvuf8xqTRA(SourceFile)
        at app.cash.molecule.MoleculeKt$immediateClockFlow$1$1$1$$ExternalSyntheticLambda0.invoke(SourceFile)
        at app.cash.molecule.MoleculeKt$launchMolecule$4.invoke(SourceFile:260)
        at app.cash.molecule.MoleculeKt$launchMolecule$4.invoke(SourceFile:259)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:109)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:35)
        at androidx.compose.runtime.RecomposeScopeImpl.compose(SourceFile:192)
        at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(SourceFile:2825)
        at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(SourceFile:3116)
        at androidx.compose.runtime.ComposerImpl.doCompose(SourceFile:3607)
        at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(SourceFile:3552)
        at androidx.compose.runtime.CompositionImpl.recompose(SourceFile:948)
        at androidx.compose.runtime.Recomposer.performRecompose(SourceFile:1206)
        at androidx.compose.runtime.Recomposer.access$performRecompose(SourceFile:132)
        at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(SourceFile:616)
        at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(SourceFile:585)
        at androidx.compose.runtime.BroadcastFrameClock$FrameAwaiter.resume(SourceFile:42)
        at androidx.compose.runtime.BroadcastFrameClock.sendFrame(SourceFile:76)
        at app.cash.molecule.GatedFrameClock.sendFrame(SourceFile:69)
        at app.cash.molecule.GatedFrameClock.setRunning(SourceFile:49)
        at app.cash.molecule.MoleculeKt$immediateClockFlow$1$1.invokeSuspend(SourceFile:100)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:33)
        at kotlinx.coroutines.DispatchedTask.run(SourceFile:100)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(SourceFile:586)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(SourceFile:829)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(SourceFile:717)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:704)