Im getting this error when I try to create an object (iOS SDK):
FAULT = ‘Server.Processing’ [java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: Can’t create table 703E6F9E-255E-1662-FF44-BC268FD5C800
.58B99074-026B-AAF0-F.C147F435-097C-3B7B-F.8595E
(errno: 150 “Foreign key constraint is incorrectly formed”)] <java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: Can’t create table 703E6F9E-255E-1662-FF44-BC268FD5C800
.58B99074-026B-AAF0-F.C147F435-097C-3B7B-F.8595E
(errno: 150 “Foreign key constraint is incorrectly formed”)>
Any idea what is wrong?
Hi Barry!
Please provide example of your code.
Regards,
Kate.
private func createBLProjectObject(projectObject:CDProjectObject) {
syncIsRunning = true
// First convert the projectObject
let blProjectObject = blHelper.convertProjectObject(projectObject)
// Upload the object
let dataStore = appDelegate.backendless.persistenceService.of(BLProjectObject().ofClass())
dataStore.save(blProjectObject, response: {(response:AnyObject!) -> Void in
print ("ProjectObject Upload OK: ",response.objectId)
// Update the backendID to the objectId of the Backendless Entity
self.updateBackendID(projectObject: projectObject, blProjectObject: response as! BLProjectObject)
// Save Core Data
self.cdHelper.save()
// Upload any customproperties that contain NSData
self.dataToUpload(projectObject)
}, error: {(fault:Fault!) -> Void in
print ("Fault! Error Creating BLProjectObject '\(projectObject.name)': ",fault)
if fault.faultCode == "1000" {
// ID Not found, remove it so object get created again
print ("stored backendID was not found in Backendless (objectId), remove it so the object get's recreated")
projectObject.backendID = nil
self.cdHelper.save()
self.uploadFailed(projectObject)
}
})
}
func convertProjectObject(projectObject:CDProjectObject) -> BLProjectObject {
let blProjectObject = BLProjectObject()
blProjectObject.uuid = projectObject.uuid
blProjectObject.attribute = projectObject.attribute
blProjectObject.createDate = projectObject.createDate
blProjectObject.modifyDate = projectObject.modifyDate
blProjectObject.name = projectObject.name
blProjectObject.descript = projectObject.descript
//blProjectObject.permission = projectObject.permission
blProjectObject.propagation = projectObject.propagation
blProjectObject.sequence = projectObject.sequence
blProjectObject.owner = appDelegate.backendless.userService.currentUser
blProjectObject.objectId = projectObject.backendID
// ParentObjectID
if let parent = projectObject.parent {
blProjectObject.parentObjectId = parent.uuid
}
// ObjectType
if let objectType = projectObject.objectType {
blProjectObject.objectType = self.convertObjecType(objectType)
}
// Custom Properties
if let customProperties = projectObject.customProperties {
for customProperty in customProperties {
if let cp = customProperty as? CDCustomProperty {
self.convertCustomProperty(cp,blProjectObject: blProjectObject)
}
}
}
return blProjectObject
}
func convertObjecType(objectType:CDObjectType) -> BLObjectType {
let blObjectType = BLObjectType()
blObjectType.key = objectType.key
blObjectType.descript = objectType.descript
blObjectType.sectionDescript = objectType.sectionDescript
blObjectType.sequence = objectType.sequence
return blObjectType
}
func convertCustomProperty(customProperty:CDCustomProperty, blProjectObject: BLProjectObject) -> BLCustomProperty {
let blCustomProperty = BLCustomProperty()
blCustomProperty.uuid = customProperty.uuid
blCustomProperty.key = customProperty.key
blCustomProperty.type = customProperty.type
blCustomProperty.name = customProperty.name
blCustomProperty.sequence = customProperty.sequence
blCustomProperty.stringProperty = customProperty.stringProperty
blCustomProperty.floatProperty = customProperty.floatProperty
blCustomProperty.doubleProperty = customProperty.doubleProperty
blCustomProperty.intProperty = customProperty.intProperty
blCustomProperty.boolProperty = customProperty.boolProperty
blCustomProperty.dateProperty = customProperty.dateProperty
blCustomProperty.objectId = customProperty.backendID
// Relations
blCustomProperty.projectObject = blProjectObject
blProjectObject.customProperties.append(blCustomProperty)
// If this is a dataProperty, create a filename pointer based on the key and append .data
if customProperty.dataProperty != nil {
blCustomProperty.dataProperty = ("\(customProperty.uuid).data")
}
return blCustomProperty
}
I also cannot browse my data on back endless anymore, getting internal error popup’s in the web interface.
Errors like this: Internal server error with id 5EE49CB4-7C15-3326-FFBA-19C57D446F00
And another one: Internal server error with id 73634E78-6DD1-BF5B-FFE0-6726DD633600
Could you add BLProjectObject and BLObjectType ?
At the moment: No. Getting internal server errors (in the backendless web interface).
When trying via the sdk:
Fault! Error Creating BLProjectObject ‘BMW M1’: FAULT = ‘Server.Processing’ [java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: Can’t create table 703E6F9E-255E-1662-FF44-BC268FD5C800
.25C18673-F8C6-CCFA-F.C147F435-097C-3B7B-F.55E08
(errno: 150 “Foreign key constraint is incorrectly formed”)] <java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: Can’t create table 703E6F9E-255E-1662-FF44-BC268FD5C800
.25C18673-F8C6-CCFA-F.C147F435-097C-3B7B-F.55E08
(errno: 150 “Foreign key constraint is incorrectly formed”)>
I understand. But could you add examples of your classes: BLProjectObject, BLObjectType. And CDObjectType, CDCustomProperty, BLCustomProperty?
Ah sorry, misunderstood you 
class BLProjectObject: NSObject {
// Project Object
var uuid: String?
var objectId: String?
var attribute: NSNumber?
var createDate: NSDate?
var descript: String?
var modifyDate: NSDate?
var name: String?
var propagation: NSNumber?
var tags: String?
var customProperties: [BLCustomProperty] = []
var objectType: BLObjectType?
var parentObjectId: String?
//var relatedTo: [BLProjectObject] = []
//var relatedFrom: [BLProjectObject] = []
var sequence: NSNumber?
var owner: BackendlessUser?
}
class BLObjectType: NSObject {
var key: String?
var descript: String?
var sectionDescript: String?
var sequence: NSNumber?
}
class BLCustomProperty: NSObject {
var uuid: String?
var objectId: String?
var key: String?
var type: NSNumber?
var name: String?
var permission: NSNumber?
var sequence: NSNumber?
var projectObject: BLProjectObject?
var stringProperty: String?
var floatProperty: NSNumber?
var doubleProperty: NSNumber?
var intProperty: NSNumber?
var boolProperty: NSNumber?
var dateProperty: NSDate?
var dataProperty: NSString? // NSData blob will be converted to NSString filename pointer
}
extension CDProjectObject {
@NSManaged var attribute: NSNumber
@NSManaged var backendID: String?
@NSManaged var backendObjectTypeID: String?
@NSManaged var backendOwnerID: String?
@NSManaged var backendParentID: String?
@NSManaged var createDate: NSDate
@NSManaged var descript: String?
@NSManaged var modifyDate: NSDate
@NSManaged var name: String
@NSManaged var propagation: NSNumber
@NSManaged var sequence: NSNumber?
@NSManaged var tags: String?
@NSManaged var uuid: String
@NSManaged var children: NSSet?
@NSManaged var customProperties: NSSet?
@NSManaged var objectType: CDObjectType?
@NSManaged var otherUsers: NSSet?
@NSManaged var ownerUser: CDUser?
@NSManaged var parent: CDProjectObject?
@NSManaged var relatedFrom: NSSet?
@NSManaged var relatedTo: NSSet?
@NSManaged var groups: NSSet?
}
extension CDCustomProperty {
@NSManaged var backendID: String?
@NSManaged var boolProperty: NSNumber?
@NSManaged var dateProperty: NSDate?
@NSManaged var doubleProperty: NSNumber?
@NSManaged var floatProperty: NSNumber?
@NSManaged var intProperty: NSNumber?
@NSManaged var uuid: String
@NSManaged var key: String
@NSManaged var name: String
@NSManaged var sequence: NSNumber?
@NSManaged var stringProperty: String?
@NSManaged var type: NSNumber
@NSManaged var dataProperty: CDCustomPropertyData?
@NSManaged var projectObject: CDProjectObject?
@NSManaged var synced: NSNumber
}
extension CDObjectType {
@NSManaged var backendID: String
@NSManaged var descript: String
@NSManaged var key: String
@NSManaged var sectionDescript: String
@NSManaged var sequence: NSNumber?
@NSManaged var projectObjects: NSSet?
}
And one more question:
maybe you remember steps before you receive such errors? Maybe some preconditions?
I haven’t been able to reproduce the problem for now. Tried the things I did before getting these errors, but I can’t remember all steps exactly. When the problem occurs again, I’ll report it.