I was having the same issue. And finally solved it out ! If you miss the field length it won't work, look at this: <code> metaforce.CustomField nf = new metaforce.CustomField() nf.label = "Name Test"; nf.fullName = "Name Field"; nf.type = daTest.metaforce.FieldType.Text; nf.typeSpecified = true; co.nameField = nf; </code> </code> metaforce.CustomField myfield = new metaforce.CustomField(); myfield.label = "CustomField"; myfield.fullName = "CustomField__c"; myfield.type = daTest.metaforce.FieldType.Text; myfield.length = 30; myfield.lengthSpecified = true; myfield.typeSpecified = true; metaforce.CustomField myfieldb = new metaforce.CustomField(); myfieldb.label = "CustomFieldb"; myfieldb.fullName = "CustomFieldb__c"; myfieldb.type = daTest.metaforce.FieldType.Text; myfieldb.length = 30; myfieldb.lengthSpecified = true; myfieldb.typeSpecified = true; metaforce.CustomField myfieldc = new metaforce.CustomField(); myfieldc.label = "from_ui"; myfieldc.fullName = "from_ui__c"; myfieldc.type = daTest.metaforce.FieldType.Text; myfieldc.length = 30; myfieldc.lengthSpecified = true; myfieldc.typeSpecified = true; myfieldc.required = false; co.fields = new metaforce.CustomField[] { myfield, myfieldb, myfieldc } ; </code> That works for me !