How to fix Salesforce import errors
What each import error means, why duplicates get flagged when nothing is duplicated, and the imports that succeed but still break something downstream.
By Operelio team · Updated July 2026
On this page10
- 1.First, which tool are you using?
- 2.Why most imports fail
- 3.Required fields are missing
- 4.The common errors and their fixes
- 5.Duplicates detected when nothing is duplicated
- 6.The import worked, but something else did not
- 7.When Data Loader is the problem
- 8.What you cannot fix in the file
- 9.Fix each error, or format once
- 10.Frequently asked questions
First, which tool are you using?
Salesforce has two import routes and they fail differently, so the first useful question is which one you are in.
The Data Import Wizard runs in Setup, handles a limited set of objects, and stops at 50,000 records per import. It is the friendlier of the two and the one most people start with. Data Loader is a separate desktop application that needs Java, covers every object, and handles the larger and more awkward jobs including upserts and deletes.
If you are hitting a wall at fifty thousand rows, that is the wizard's ceiling rather than anything wrong with your file. Split the file and run it in batches, or move to Data Loader.
Why most imports fail
Most errors come from the file rather than the tool: a required field is empty, a value does not match a picklist, a date is in a format Salesforce will not read, or a value is longer than the field allows. Fix those and the import goes through.
Both tools report errors row by row after you map columns, and both produce an error file. That file is where the real answer is.
Required fields are missing
Salesforce rejects any row missing a required field for the record type you are importing:
| Importing | Required in every row |
|---|---|
| Leads | Last Name and Company |
| Contacts | Last Name |
| Accounts | Account Name |
If your list has full names in one column, split them into first and last name before you import, so Last Name is never empty. This is the single most common Salesforce import failure.
The common errors and their fixes
Map the message you are shown to the fix in your file:
| Error | Fix in the file |
|---|---|
| Required fields are missing: Last Name | Fill or split the name column so every row has a last name. |
| Bad value for restricted picklist | Change the value to match a picklist option exactly, including casing. |
| Invalid date | Use one consistent date format across the column. YYYY-MM-DD is safest. |
| Data value too large | Shorten the cell to fit the field's character limit. |
| Cannot deserialize instance of date | The column is being read as text. Same fix: one consistent, unambiguous date format. |
| Duplicate value found | Remove the duplicate row, or adjust your duplicate rules. See the next section, because this one is not always what it says. |
Duplicates detected when nothing is duplicated
This one confuses people more than any other Salesforce import error, and the message is genuinely misleading. Salesforce tells you that you are creating a duplicate and suggests using the existing record, and you check, and the record is not there.
The cause is that Salesforce is not looking for an exact match. Its standard matching rules compare fuzzily, so a lead can be flagged against an existing contact or account it merely resembles, on a similar company name or a close-but-not-identical email. The rule that fired is often the Standard Lead, Contact, or Account matching rule, and none of them require the values to be identical.
So before you go hunting for a duplicate that does not exist, open Duplicate Rules in Setup and read which rule is active and what it matches on. The fix is usually to adjust or deactivate the rule for the import, not to change the file. Cleaning duplicates out of your own file first is still worth doing, because it removes the half of the problem you control.
The import worked, but something else did not
Some of the worst Salesforce import surprises are not errors at all. The records land, everything looks correct on the record page, and something downstream quietly did not happen.
Your automation did not fire
A Flow that triggers on record creation will not run for imported records unless you tick Trigger workflow rules and processes during the import. It is off by default. If new leads are landing but nothing is routing or notifying, check that box before you rebuild the Flow.
A trigger or validation rule blocked the update
Existing automation on the object can reject an update that looks perfectly valid, with an error that reads as nonsense. A reported example is a mass owner change failing with a message about all accounts needing the same current and new owner, caused by automation on the Account object rather than by the file.
The workaround is usually to split the file
When automation objects to a mixed batch, sorting and splitting the file by the value that varies, then running one batch per value, gets it through without touching the automation. Splitting by owner is the common case.
Before a large update, export the records you are about to change. Salesforce has no undo for an import, and an export you already have is worth more than any amount of care afterwards.
When Data Loader is the problem
Not every failure is your file. Data Loader is a Java desktop application and it has its own well-known behavior: it can hang when you select a file and never show the row-count dialog, even on a file with two rows, which usually means ending the Java process and starting again. More than one instance of Java running is a reported cause.
If that keeps happening, the file is not what needs fixing. It is worth knowing so you do not spend an afternoon reformatting a CSV that was fine.
What you cannot fix in the file
Two jobs get mistaken for import problems and are not.
Merging duplicate records that are already in Salesforce is not an import. Each merge involves choosing which value wins where two records disagree, which is why bulk merging needs a dedicated in-CRM merge tool or a matching rule plus a record-triggered flow. An import can upsert over existing records, but it cannot merge two of them into one.
Duplicate and matching rules themselves live in Salesforce configuration. You can clean your file so it does not contain duplicates, and that is worth doing, but the rule deciding what counts as a match is set in Setup and only changes there.
Fix each error, or format once
Done by hand, this means splitting names so Last Name is filled, standardizing every date, checking each value against its picklist, trimming the fields that are too long, and pulling duplicate rows, then re-running the wizard and hoping nothing slipped through.
Point the CRM Formatter at Salesforce leads or contacts instead and it maps your columns, standardizes text and formats, splits full names, and flags duplicates, so the file you hand over is one Salesforce accepts. Split File handles the batch-per-value workaround above, and the 50,000-row wizard ceiling, without you sorting anything by hand. On Pro and up, Operelio can push leads or contacts to Salesforce directly, with a preview of what will be created and updated before it writes.
Format a list for Salesforce leads or contacts, split names, and fix the values the import rejects.
Related
Frequently asked questions
What fields does Salesforce require to import leads?
Last Name and Company on every lead. Contacts require Last Name, and Accounts require Account Name. A row missing one is the most common import error.
Why does Salesforce say duplicates detected when the record does not exist?
Because its matching rules compare fuzzily rather than exactly, so a row can be flagged against a record it only resembles. Open Duplicate Rules in Setup to see which rule fired and what it matches on. The fix is usually the rule, not the file.
Why did my Flow not run on imported records?
Because the option to trigger workflow rules and processes is off by default during an import. Tick it and the automation runs for imported records the same way it does for records created by hand.
Data Import Wizard or Data Loader?
The wizard is simpler, covers a limited set of objects, and stops at 50,000 records. Data Loader needs Java, covers every object, and handles upserts, deletes, and larger volumes. If you are hitting a ceiling at fifty thousand rows, that is the wizard rather than your file.
Why does Salesforce reject my dates?
Because the column mixes formats or uses one Salesforce will not read. Standardize the whole column to one format, and YYYY-MM-DD is the safest choice.
Can I merge existing duplicate records with an import?
No. An import can update existing records, but merging two records into one requires choosing which value wins on every field where they disagree, which is a job for an in-CRM merge tool. Cleaning duplicates out of the file beforehand stops you creating more.
Can Operelio push to Salesforce?
Yes, on Pro and up. CRM Formatter can push leads or contacts to Salesforce, with a preview of what will be created and updated before anything is written.
Ready to get started?
Upload a file and run your first transformation. Free, no credit card required.