In the CloudKit logs I see logs that suggest users getting QUOTA_EXCEEDED error for RecordDelete operations.
{
"time":"21/07/2025, 7:57:46 UTC"
"database":"PRIVATE"
"zone":"***"
"userId":"***"
"operationId":"***"
"operationGroupName":"2.3.3(185)"
"operationType":"RecordDelete"
"platform":"iPhone"
"clientOS":"iOS;18.5"
"overallStatus":"USER_ERROR"
"error":"QUOTA_EXCEEDED"
"requestId":"***"
"executionTimeMs":"177"
"interfaceType":"NATIVE"
"recordInsertBytes":54352
"recordInsertCount":40
"returnedRecordTypes":"_pcs_data"
}
I'm confused as to what this means? Why would a RecordDelete operation have recordInsertBytes
? I'd expect a RecordDelete operation to never fail on quotaExceeded and how would I handle that in the app?
This can occur when the RecordDelete operation was sent as part of a batch of operations, for instance when using CKModifyRecordsOperation. In this scenario the QUOTA_EXCEEDED error and recordInsertBytes values would apply to another operation in the batch - for instance a RecordSave. If you do want to ensure the deletion always completes, you could consider doing it as a single operation. Hope this helps - I have also passed the feedback that this scenario was confusing on to the team to consider.