How to fix Salesforce import errors
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.
1. 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.
2. 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.
3. 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:
1. 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.
2. 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.
3. 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.
Originally published in the Operelio how-tos. Which Salesforce import error do you hit most?
原文:https://www.a8q9.cn/en/article/how-to-fix-salesforce-import-errors-e625d9.html