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 October 23, 2026
On this page13
- 1.Data Loader or Data Import Wizard?
- 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.The import finished, but the records are not there
- 8.A field is missing from the mapping list
- 9.You do not have sufficient permissions to import custom objects
- 10.When Data Loader is the problem
- 11.What you cannot fix in the file
- 12.Fix each error, or format once
- 13.Frequently asked questions
Data Loader or Data Import Wizard?
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, in the browser. Salesforce suggests it when you are loading fewer than 50,000 records into an object it supports, the object has fewer than 50 fields, and the mapping is simple. It is the friendlier of the two and the one most people start with.
Data Loader is a desktop application for Windows and macOS that needs Java 17 or later. It covers every object, including custom objects, and handles the larger and more awkward jobs: upserts, deletes, exports for backup, and loads you repeat on a schedule. It needs the API Enabled permission and is available in Enterprise, Performance, Unlimited and Developer editions.
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.
| Data Import Wizard | Data Loader | |
|---|---|---|
| Where it runs | In the browser, from Setup | Desktop app for Windows or macOS, with Java 17 or later |
| Records per load | Up to 50,000 | Up to 150 million with Bulk API 2.0 |
| Objects | The ones the wizard lists in Setup | All objects, including custom objects |
| What it does | Imports records | Insert, update, upsert, delete and export |
| Duplicate checks | Can match on account name and site, contact email or lead email | No matching of its own; an upsert matches on a record ID or external ID |
| Repeat loads | Run by hand each time | Command line on Windows for scheduled loads |
| Results | Recent Import Jobs in Setup, and an email when done | Success and error CSV files for every run |
Source: Salesforce's Data Loader Guide, "When to Use Data Loader" and "Data Loader", checked October 2026.
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 only looking at the record type you are importing, or only for identical values. Its standard lead rule also checks contacts, and its matching rules compare names by similarity, so a lead can be flagged against an existing contact with the same name and phone, or the same name and email. The rule that fired is often the Standard Lead, Contact, or Account matching rule.
So before you go hunting for a duplicate that does not exist, search contacts as well as leads for the name, email and phone. The row usually matches a person who is already there, and that record is the one to update instead of adding them again. Duplicate Rules in Setup shows which rule fired and what it matches on. Cleaning duplicates out of your own file first is still worth doing, because it removes the half of the problem you control.
Setting the rule to Allow doesn't get an import past it. Salesforce shows no alert to an import tool and doesn't save the record, so a matching row is refused under Allow as well as Block. Our Salesforce duplicate rules how-to covers what each setting does and how to load a list without tripping them.
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 check 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.
The import finished, but the records are not there
The Data Import Wizard does not import while you watch. The message saying your import has started means the file has joined a queue. Salesforce emails you when it is done, which usually takes a few minutes and can take up to 24 hours. You can close the message and the tab, and the import carries on.
To see where it is, check Recent Import Jobs on the Data Import Wizard home page, which shows each import's status. Admins can open Bulk Data Load Jobs in Setup for the records processed and the records that failed, plus a result file with the reason each failed row was rejected. That page is not available in Professional Edition. Processed minus failed is how many rows were created or updated.
If the job finished and the records still seem to be missing, check these before you import again, or you will end up with two copies:
The list view
Lightning opens a list on Recently Viewed, which only shows records you have opened. New imports are not in it. Switch the view to All Leads or All Contacts.
The owner
If you applied the lead assignment rule during the import, the leads may now belong to other users, so a view filtered to your own leads will not show them. Search for one by email to see who owns it.
The failed rows
If the job shows failed rows, those records were rejected, not hidden. The result file on Bulk Data Load Jobs says why for each one, so ask an admin if you cannot open it.
A field is missing from the mapping list
The wizard only offers fields you can see. A field has to be on the page layout for one of your record types and visible to your profile under field-level security. If either is off, the field exists but will not appear in the list. An admin can check both in Setup with Field Accessibility.
Formula and auto-number fields never appear, because Salesforce calculates them and nothing can be written into them.
You do not have sufficient permissions to import custom objects
Importing into a custom object needs two things on your profile or a permission set: the Import Custom Objects permission, and Create access on that object. Without the first, the wizard shows this message. Ask an admin to add both, then run the import again.
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 removes rows that repeat an email, 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 Starter and up, Operelio can push leads, contacts or accounts to Salesforce directly, with a preview of what will be created and updated before it writes.
See CRM imports for how that preview works.
Format a list for Salesforce leads or contacts, split names, and fix the values the import rejects.
Templates for prospecting exports
Related
- How to split a large file for a CRM import
- Salesforce duplicate rules: what they do to imports and APIs
- How to format a CSV for HubSpot import
- Why your HubSpot import is failing
- CRM data cleanup and hygiene: a checklist and best practices
- CRM migration: a step-by-step checklist
- Salesforce Lead and Contact import templates
- CRM import limits
- CRM Formatter: map, clean, and push
- The CRM import problem
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 the standard lead rule also checks contacts, and names are compared by similarity, so a lead can be flagged against a contact with the same or a close name and the same email or phone. Search contacts as well as leads: the match is usually the person already there, and that record is the one to update. Duplicate Rules in Setup shows which rule fired and what it matches on.
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. Check 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.
Why are my imported leads not showing in Salesforce?
Three usual reasons. The import is still in the queue, so check Recent Import Jobs on the wizard's home page. The list view is set to Recently Viewed, which leaves out records you have not opened, so switch to All Leads. Or the lead assignment rule gave the leads to other users, so a view of your own leads does not show them.
The message says my import has started. How long does it take?
The wizard queues the file and imports it in the background. Most imports finish within a few minutes, and Salesforce says none take longer than 24 hours. You get an email when it is done, and you can close the message in the meantime. Recent Import Jobs on the wizard's home page shows the progress.
Why are some fields missing when mapping in the Data Import Wizard?
The wizard only lists fields that are on one of your page layouts and visible to your profile through field-level security. Formula and auto-number fields never appear because nothing can be written to them.
What permission do I need to import custom objects?
The Import Custom Objects permission, plus Create access on the object, both on your profile or a permission set. Without them the wizard shows the message "You do not have sufficient permissions to import custom objects."
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 Starter and up. CRM Formatter can push leads, contacts or accounts 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.