The new modifyRecordsResultBlock behaves differently from modifyRecordsCompletionBlock

Hi I noticed with CKModifyRecordsOperation, modifyRecordsResultBlock works differently from the now deprecated modifyRecordsCompletionBlock. When using a savePolicy of ifServerRecordUnchanged (which is the default), if the record on the server has been changed since it was downloaded, edited and saved again then modifyRecordsResultBlock unexpectedly does not error. But modifyRecordsCompletionBlock does error which is what I would expect.

The kind of error in this case looks like this:

"Server Record Changed" (14/2004); server message = "client oplock error updating record";

My question is, is this new behavior by design?

By the way, I'm having to write my own async/await version of save records using withTaskCancellationHandler and withCheckedThrowingContinuation because the built-in one does not support task cancellation which I require to use with SwiftUI's .task modifier.

Finally, modifyRecordsResultBlock and the other 2 new ones are missing its documentation because it hasn't used the correct DocC format, it's using old style comments which are not being picked up. FB10400023

Did you ever find a solution or response to your FB? Experiencing the same.

The new modifyRecordsResultBlock behaves differently from modifyRecordsCompletionBlock
 
 
Q