ensure coroutine generated exceptions are propagated