These batch operations do not return exceptions in a normal "nil, error" format, but rather return "result, errors" that contains both results of the successful tuple inserts/replaces and errors for the unsuccessful ones. Although this approach is questionable, we have no other options now than to support this exotic return format.
I suggest throwing the first returned error because we can not do anything with the other errors rather than retrying the operation completely. Otherwise, the cluster will still be in an unknown inconsistent state.
These batch operations do not return exceptions in a normal "nil, error" format, but rather return "result, errors" that contains both results of the successful tuple inserts/replaces and errors for the unsuccessful ones. Although this approach is questionable, we have no other options now than to support this exotic return format.
I suggest throwing the first returned error because we can not do anything with the other errors rather than retrying the operation completely. Otherwise, the cluster will still be in an unknown inconsistent state.