The solution is to always call `async { … }` from ...
# coroutines
l
The solution is to always call
async { … }
from a
coroutineScope { … }
lambda, so it throws the exception that led to failing, and you can catch it there without having the upper parent scope being cancelled. I finally understood the whole structured concurrency behavior!