fixed error handling

@dknochen Why not a throw here? `Q.reject` makes things complicated here because you cannot tell from which promise it comes from. Or maybe I'm missing something.