You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
App crash when using the list as a return value on Xiaomi devices. The suspend function is called on the main thread. Then it switches to Dispatcher.IO
Suspend repository function before modification suspend fun getAdvicesList(isForceRequest: Boolean): Either<List<ProductAdvice>>
sealed class Either<out T> : Serializable {
data class Error(val message: String?, val e: Exception) : Either<Nothing>()
data class ApiError(val errorResponseMo: ErrorResponseMo) : Either<Nothing>()
data class Success<T>(val value: T) : Either<T>()
}
Suspend function call location. The crash also does not occur if remove the delay() from jobLoading
override suspend fun run(): Result<T> {
var coroutineResult: CoroutineResultState<Either<T>> = CoroutineResultState.None
var result: Result<T> = Result.None
var jobLoading: Job? = null
if (isLoadingDelayEnabled) {
jobLoading = launcher.launch {
delay(FAST_RESPONSE_DURATION)
if (coroutineResult == CoroutineResultState.None) {
onLoading?.invoke(true)
}
}
} else {
onLoading?.invoke(true)
}
try {
coroutineResult = coroutine(launcher).let {
CoroutineResultState.Success(it)
}
} catch (error: Throwable) {
val isCanceledJob = (error is CancellationException && error !is FinalCancellationException)
if (launcher.isActive && !isCanceledJob) {
result = handleThrowable(error)
}
} finally {
jobLoading?.join()
if (coroutineResult is CoroutineResultState.Success) {
result = handleEither(coroutineResult.result)
}
return result
}
}
Stack trace
java.lang.StackOverflowError: stack size 8MB
at kotlin.ResultKt.createFailure(Result.kt:121)
at kotlinx.coroutines.DebugStringsKt.toDebugString(DebugStrings.kt:18)
at kotlinx.coroutines.internal.DispatchedContinuation.toString(DispatchedContinuation.kt:251)
at kotlinx.coroutines.DebugStringsKt.toDebugString(DebugStrings.kt:16)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCo
[TRUNCATED 12097254 CHARS]
l.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.DisposeOnCancel.toString(CancellableContinuation.kt:385)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CompletedContinuation.toString(Unknown Source:22)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.CancellableContinuationImpl.toString(CancellableContinuationImpl.kt:506)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.ResumeOnCompletion.toString(JobSupport.kt:1395)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1536)
at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:903)
at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:860)
at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:825)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:227)
at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:166)
at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:362)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:396)
at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:388)
at kotlinx.coroutines.CancellableContinuationImpl.resumeUndispatched(CancellableContinuationImpl.kt:484)
at kotlinx.coroutines.android.HandlerContext$scheduleResumeAfterDelay$$inlined$Runnable$1.run(Runnable.kt:19)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6635)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
The text was updated successfully, but these errors were encountered:
The specific stack trace you're observing looks like it should have been fixed in #2377. What version of coroutines do you use? If it's below 1.4.2, does the issue persist if you upgrade to 1.4.2 or later?
App crash when using the list as a return value on Xiaomi devices. The suspend function is called on the main thread. Then it switches to Dispatcher.IO
Suspend repository function before modification
suspend fun getAdvicesList(isForceRequest: Boolean): Either<List<ProductAdvice>>
Function implementation
Suspend repository function after changes that fix the crash
suspend fun getAdvicesList(isForceRequest: Boolean): Either<UserAdvice>
Function implementation
Either wrapper
Suspend function call location. The crash also does not occur if remove the
delay()
fromjobLoading
Stack trace
The text was updated successfully, but these errors were encountered: