errors are async on Q.all