pass errors along async-ly