Why do you need to make sure all calls complete? In the case we return a non multi error, we can return immediately with a nil result. In the case of a multi error, we have to wait for all go routines to complete before checking for it.