This one is probably the trickiest to figure out when you are trying to debug a data load in Salesforce. That is because the error isn't coming from a Salesforce restriction, rather a custom validation rule which has been created in your unique instance.
What makes it especially tricky, is that you will only see the error message which has been created on the validation rule, not the name of the validation rule itself. If the error message is not one of the below, or another that you recognize, chances are it is a custom validation rule so that is the best place to check first.
This means that Salesforce has rejected the Insert / Update because a required field on the object is not populated.
This could either be Standard Salesforce fields, such as Name on Account, or Last Name on Contact, or a custom field which has the 'Required' attribute set to True.
To progress with the data load, make sure that for every records, the required field has a value populated.
Another error message which doesn't give you much information, this one actually means that there are Duplicate Rules set up for the object you are importing into. Salesforce has recognized the record as a Duplicate and has rejected it from being created / updated.
NOTE: Even though you have the Duplicate rule set to 'Allow' on Create / Update, records created through Data Loader or dataimporter.io will still be rejected.
You will either need to Disable the Duplicate Rule, or ensure that the records you are Inserting / Updating are not already in Salesforce. You can also use Dataimporter.io to deduplicate records before the import occurs, to make sure this error doesn't occur.
When doing an Upsert / Update on multiple records, and the Id values provided are in the data multiple times, the Salesforce will reject the records. This is to prevent multiple updates / inserts happening on the same records at the same time.
Make sure that there are no Duplicate Ids or External Ids in the source data, as these need to be unique as part of the job upload. One way to get around this is to reduce the batch size of the job so that the likelihood of the same Id being in the same batch is less.
When you are looking to Update / Upsert records, and you provide the Id field, this error will occur when the Id provided doesn't match the format of the object.
Make sure you are importing the correct records to the correct objects. A quick check you can do is by checking the first few characters of the Id e.g. 001, 003. For standard objects, the prefixes will always be the same e.g. 001 is an Account record and 003 is a Contact record. There is also a a list of the most common Standard Object Salesforce Prefixes .
When trying to Update / Delete a record, this error will occur when the entity has already been deleted in Salesforce.
If you are looking to Delete the record, then the job is already done for you. If you were looking to Update the record, then you would need to create it again by Inserting it, as the previously referenced record no longer exists.
This is another error which is specific to your Org. The error will specify the name of the Process which has failed e.g. "Account Insert Flow". The error occurs because the job that you have run e.g. Inserting new Accounts has triggered a process in Salesforce to run which has subsequently failed.
This is a bit trickier, but you will need to have a look into the details of the process to see exactly why it is failing e.g. Validation Rules, Required fields missing etc.
This is pretty self-explanatory, but Salesforce actually has it's own method for calculating whether an email address is 'invalid' or 'valid', and Salesforce has judged that these records fall into the Invalid category.
The most common cause is dirty data. Spaces in email addresses e.g. "test@ test.com", multiple @ symbols e.g. "test@firstname.lastname@example.org" or invalid characters such as commas e.g. "test@test,com". Make sure you clean up the email addresses before attempting to Insert / Update them into Salesforce.
When you are referencing a lookup value when Inserting / Updating records e.g. Inserting Contacts with the AccountId field populated Salesforce will return this error if the Lookup Relationship couldn't be created.
This will also need some investigation but the most common reasons are that the Id provided is for the wrong Object, or that the Lookup Record has been deleted. Make sure you are referencing the correct Id records, or even easier, using a tool like dataimporter.io which lets you lookup records using any Text value, to make sure the correct Ids are found automatically.
This error is shown when you try to Insert / Update a Picklist field with values that are not listed as 'Active' on the Picklist field, and 'Restrict picklist to the values defined in the value set' is set to True.
The field has been set up, so that only certain values can be selected and entered. If this is correct you will need to fix the data so that only valid values are present. If you still want to enter the values you have in your Insert / Update file, then you will need to set 'Restrict picklist to the values defined in the value set' to False, or add the new Values to the Active Values available on the Picklist Field.
These are some of the most common errors which you will encounter when you are loading data into Salesforce. There are a lot more errors which could show up, many of which are documented in Salesforce Help. Because I have seen and fixed a lot of these errors, I have built tools into dataimporter.io such as Deduplication, Text Lookup Relationships, and Rollback to make data loading with Salesforce a lot easier.