Пакетная ошибка CloudKit: Предыдущая ошибка в атомной зоне

Я пытаюсь спасти CKRecord используя CKModifyRecordsOperation и каждый раз, когда я пытаюсь это сделать, я получаю эту первоначальную ошибку:

["CKErrorDescription": не удалось изменить некоторые записи,

"CKPartialErrors": {"CKRecordID: 0x60c000034000; recordName=ABC, zoneID=workspaceZone:DEF" = "CKError 0x60c000257340: \" Сбой пакетного запроса \" (22/2024); \" Запись CKRecordID: 0x7fb2; recordName=ABC, zoneID=workspaceZone:DEF не будет сохранен из-за предыдущей ошибки в атомарной зоне \ ""; },

"NSDebugDescription": CKInternalErrorDomain: 1011, "NSUnderlyingError": CKError 0x60c000248af0: "Частичная ошибка" (1011); "Не удалось изменить некоторые записи"; частичные ошибки: { ... 1 "Сбой пакетного запроса" CKError пропущено...},

"NSLocalizedDescription": не удалось изменить некоторые записи]

Затем я анализирую отдельные ошибки пакета следующим образом:

if let errorItems = error.partialErrorsByItemID {
  for item in errorItems{
    if let itemError = item.value as? CKError{
      print("::: Individual Error in Batch :::")
      print(itemError)
      print(":::::")
    }
  }
}

Но вся индивидуальная ошибка говорит:

CKError (_nsError: CKError 0x60c000257340: "Сбой пакетного запроса" (22/2024); "Запись CKRecordID: 0x7fb2f6998a60; recordName=GHI, zoneID=workspaceZone:JKL не будет сохранен из-за предыдущей ошибки в атомарной зоне")

В журнале сервера CloudKit просто говорится, что это BAD_REQUEST, что тоже не очень полезно.

Есть ли способ узнать больше о том, что не так с моей записью?

0 ответов

Это просто означает, что один из ваших запросов не удался. Вы выполняете пакетный запрос с одним или несколькими запросами. В случае неудачи CloudKit не выполняет все запросы, чтобы все оставалось атомарным.

Итак, вы должны подписаться на ошибки в каждой записи с помощью perRecordCompletionBlock. Затем вы можете увидеть, какая запись не работает и почему. Вы должны распечататьuserInfo словарь ошибки для более подробной информации.

Другие вопросы по тегам