When attempting to save a CloudKit CKRecord, I get a CKError returned which gives the following description:
<CKError 0x7fd3d24e1810: "Internal Error" (1/2005); "there is no operation
associated with this request">
Any ideas what might cause this? Google does not return any results at all to this error.
This error is mentioned in the CloudKit constants reference here. Clearly this is some sort of internal issue in CK. Is the issue recurring? Are you doing anything special in this operation?
Related
I have an app that uses CloudKit for data synchronisation.
With a larger volume of users, the data synchronisation between devices stopped working with an error:
<CKError 0x600001bbaca0: "Partial Failure" (2/1011); "Failed to modify some records"; uuid = 6D5A9621-7F98-4813-B7FC-1AE08E0AD16B;
container ID = "iCloud.EvenyCloudKit";
partial errors: {
3587C9C7-9E2C-460B-855B-C921EC4BDA3A:(com.apple.coredata.cloudkit.zone:__defaultOwner__) =
<CKError 0x600001bbac40: "Quota Exceeded" (25/2035);
server message = "Quota exceeded"; uuid = 6D5A9621-7F98-4813-B7FC-1AE08E0AD16B;
Retry after 347.0 seconds>
}>
I deployed my CloudKit schema to production, but it didn't fix the problem.
I have about 800 active users, and only small text data are stored in CloudKit.
How can I fix this problem, and how can I see the current CloudKit Container usage?
Thanks!
I'm using the AWSMobileClient on iOS for authentication and I'm not able to sign in. I'm calling the signin method and all I'm getting is the following error:
The operation couldn’t be completed. (AWSMobileClient.AWSMobileClientError error 13.)
This error is useless to me and I can't find any decent documentation on what this error means. Has anyone seen this? Appreciate your help.
Please take a look at this https://github.com/aws-amplify/aws-sdk-ios/issues/1538#issuecomment-491905913
You can cast the error as AWSMobileClientError and switch on it to exhaust the list of errors.
Alternatively, I've moved over the internal message property over to my app like this:
https://github.com/lawmicha/iOS-User-Authentication-with-Email-Facebook-Google/blob/master/AmplifyUserAuthentication1/Internal/ErrorMapper.swift
extension AWSMobileClientError {
var message: String {
switch self {
case .aliasExists(let message),
.badRequest(let message),
and then I can access the message on error after casting it to AWSMobileClientError from if let error = error as? AWSMobileClientError
You should keep in mind that the alternative method exposes the message which is a developer facing message and not a end-user facing message. Ideally when you need to provide an end-user facing message, you would use first method and map the error case to a specific localized message.
Using the standard autocomplete code with a searchbar:
placesClient.autocompleteQuery(searchBar.textField.text!, bounds: nil, filter: filter, callback: {(results, error) -> Void in
if let error = error {
print("Autocomplete error \(error)")
return
}
if let results = results {
for result in results {
print("Result \(result.attributedFullText) with placeID \(result.placeID)")
self.predictions.append(result)
}
}
self.placesTableView.reloadData()
})
Has been working for months and tonight it started reporting this error:
Autocomplete error Error Domain=com.google.places.ErrorDomain Code=-2 "The Places API server returned a response that we couldn't understand. If you believe this error represents a bug, please file a report using the instructions on our community and support page (https://developers.google.com/places/support)."
UserInfo={NSLocalizedFailureReason=The Places API server returned a response that we couldn't understand. If you believe this error represents a bug, please file a report using the instructions on our community and support page (https://developers.google.com/places/support)., NSUnderlyingError=0x600000444380 {Error Domain=com.google.places.server.ErrorDomain Code=-1 "(null)" UserInfo={NSUnderlyingError=0x600000444350 {Error Domain=com.google.HTTPStatus Code=404 "Not Found" UserInfo={NSLocalizedDescription=Not Found}}}}}
Anyone else experiencing this?
Looks like the service is back up. I raised a ticket with Google.
They identified the issue and are resolving it. Mentioned it could take a few hours.
See below:
https://issuetracker.google.com/issues/64280749
https://issuetracker.google.com/issues/64994023
This issue has been filed with Google, Google has identified the bug, and they are currently working on a fix. Issue tracking: https://issuetracker.google.com/issues/64280749
See: why loading places in iOS using google places api causes lookup place id query error?
thank-you: #trishcode
I get this error message when trying to submit a new version of my app for review:
While I've seen other threads about this error message, the solutions presented haven't worked for me and I haven't seen any mentions of the actual server error message I get. iTunes Connect responds with the following error message:
Error converting JSON string to object: Can not instantiate value of type [simple type, class com.apple.jingle.label.content.purple.to.LCSubmitForReviewTO] from JSON integral number; no single-int-arg constructor/factory method
Request details:
Remote Address:23.1.186.88:443
Request URL:https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/apps/123456789/version/submit/complete
Request Method:POST
Status Code:500 Internal Server Error
Full JSON response:
{
"data":null,
"messages": {
"warn":null,
"error":[
"Error converting JSON string to object: Can not instantiate value of type [simple type, class com.apple.jingle.label.content.purple.to.LCSubmitForReviewTO] from JSON integral number; no single-int-arg constructor/factory method"
],
"info":null
},
"statusCode":"ERROR"
}
I've tried clearing all cookies, and also changing to another browser, and I've also tried removing the build and adding it again, but I get the same issue regardless. Has anyone else had this exact problem? Did anyone find a way around it?
I just tried submitting my app again, after 12 hours of being unable to. It worked!
When using CloudKit, sometimes the error returned is PartialFailure, which may caused by duplicate subscriptions, etc. See example below.
<CKError 0x7f8318711520: "Partial Failure" (2/1011);
"Failed to modify some subscriptions"; uuid = A434B010-7650-4BBA-8A7A-33CD0690FD15;
container ID = "iCloud.xxx.xxx"; partial errors: {
EFC65F4A-A595-44A3-A022-323D9CE9B535 = <CKError 0x7f831a007be0: "Server Rejected Request" (15/2032); server message = "subscription is duplicate of '_930081460_AA87A676-DE57-4530-8BB8-7465BF4F4303'">
C4913907-28F3-42DB-8455-9966D9084834 = <CKError 0x7f83185cfc20: "Server Rejected Request" (15/2032); server message = "subscription is duplicate of '_930081460_F92FA91D-3E92-4E46-AE59-E912F8871026'"> }>
I wish to retrieve these partial errors from the main error object but I don't know how. NSError doesn't have a partialError property, and it neither has a key in userInfo to retrieve that.
You aren't getting back a straight NSError, you are getting back a CKError. Looking at the documentation for CKError, there is in fact a CKPartialErrorsByItemIDKey key. That looks like the key that would return a dictionary of CKErrors keyed by item ID if you ask me! The userInfo object should contain that key.
Also documented here
CloudKit Framework Constants Reference
Two years later, and I still don't think how to access partial errors is particularly well documented. Thanks to #Acey for putting me on the right path with CKPartialErrorsByItemIDKey
For those who are struggling, here is an example of how I ended up accessing a partial error in a CKModifySubscriptionsOperation (Swift 2.2):
someZoneSubscriptionOperation.modifySubscriptionsCompletionBlock = {(savedSubscriptions: [CKSubscription]?, deletedSubscriptionIDs:[String]?, operationError:NSError?) in
// check specifically for an error in changing subscriptions to custom zone with specific subscriptionID
if let partialError = operationError?.userInfo[CKPartialErrorsByItemIDKey]?[subscriptionID] as? ErrorType {
print(partialError) // prints partial error for custom zone with `subscriptionID` if it exists
}
}