Quick Answer
CRM import error logs tell you exactly which rows failed and why. The most important skill is distinguishing between three error types: row-level validation errors (fixable per-row), configuration errors (require CRM setup changes before reimporting), and file-level errors (the entire file was rejected before processing began).
Why reading the error log matters: Most teams open the error log, see a list of failed rows, and immediately try to fix each row one at a time. The faster path is categorizing all errors first — often 80% of failures share the same root cause and can be fixed in one batch operation.
The fix: Download the error log, sort by error type, identify the dominant error type, fix that class of error across all affected rows in the source CSV, then reimport only the failed rows.
Key insight: Error logs are your diagnostic tool, not your action list. You should never fix a CRM import error directly in the CRM — always fix it in the source CSV and reimport.
Tested on: Salesforce Data Loader error files, HubSpot import error CSVs, Zoho failed record exports, and Pipedrive import logs. Error patterns verified across imports of 500 to 50,000+ rows, March 2026.
If you only do three things: (1) Sort the error log by the error column before touching a single row. (2) Fix by class, not by row — one find-replace for the dominant error type. (3) Reimport only failed rows — never the full file.
If you get this wrong:
- Fix rows manually one by one → 6 hours for 800 rows, same error repeats on the next import
- Reimport the full file after fixing → duplicate the 4,200 rows that already succeeded
- Ignore the dominant error pattern → spend an hour on 20 edge cases before noticing 680 share the same root cause
Most teams discover the sort-first approach after their third failed reimport.
The Error Log Triage Method
DO THIS BEFORE FIXING ANY INDIVIDUAL ROW:
Step 1: Download the error log
→ Every CRM generates a downloadable error file after a failed import
Step 2: Count rows vs errors
→ Total rows in original file: N
→ Rows that failed: X (from error log row count)
→ Rows that succeeded: N - X (already in your CRM — don't reimport these)
Step 3: Sort error log by Error column
→ Group all errors by type
→ Count: how many rows failed with each error type?
Step 4: Identify the top error
→ Example: "Invalid status: ACT" — 847 rows
→ "Required field missing: Lead Name" — 23 rows
→ "Invalid email address" — 4 rows
Step 5: Fix by error type, not by row
→ Fix the 847 "ACT" status rows in one find-replace operation
→ Fix the 23 "Lead Name" rows by populating the field
→ Fix the 4 invalid emails manually
Step 6: Reimport only the failed rows
→ Never reimport the full file
→ The successful rows are already in your CRM
Fast Fix (90 Seconds)
If you have an error log and don't know where to start:
- Open the error log in a spreadsheet — not a text editor.
- Find the error column — it's usually the last column or labeled "Errors", "Validation Errors", or similar.
- Sort by that column — identical errors group together.
- Count the top error type — the most frequent error type is your first fix target.
- Run Data Validator — upload the original CSV, and it will flag all the same issues the CRM caught — plus others the CRM didn't catch because it stopped at the first validation pass.
TL;DR: Sort the error log by error type, fix the dominant error class first, reimport only the failed rows. Use Data Validator to catch the next tier of errors before the second import attempt — it processes in your browser, no upload.
Your import ran. 4,200 of 5,000 rows succeeded. 800 failed. The error log opens in Excel: 800 rows, each with a different-looking error message. You start fixing them row by row. Six hours later you've fixed 200.
There's a faster way. Sort the error column. You'll discover that 680 of those 800 rows failed with the same error: "Invalid status: HOT" — because your source data used "HOT" but your CRM picklist uses "Hot." One find-and-replace in the source CSV. 680 rows fixed in 30 seconds.
Here's the workflow most teams use — and the one that actually works:
WRONG WORKFLOW (what most teams do):
1. Import fails → 800 errors
2. Open error log → start fixing row by row
3. Fix row 1 (bad email)
4. Fix row 2 (picklist mismatch)
5. Fix row 3 (picklist mismatch — same error as row 2)
...
After 2 hours: fixed 40 rows. 760 remaining.
CORRECT WORKFLOW (sort-first approach):
1. Import fails → 800 errors
2. Open error log → sort by Error column
3. Count: 680 rows share "Invalid picklist value: HOT"
4. One find-replace: "HOT" → "Hot" in source CSV
5. Count: 92 rows share "Invalid picklist value: WARM"
6. One find-replace: "WARM" → "Warm"
7. Fix 18 email rows and 10 required-field rows manually
After 15 minutes: all 800 rows fixed.
If you upload a CRM export to a cloud-based error analyzer or CSV validator, you are transferring customer personal data to a third party. Under GDPR Article 28, that third party becomes a data processor — you may be required to have a signed Data Processing Agreement before that transfer is legal. Under Article 5(1)(c), you are processing more data than necessary simply to fix a file format issue. Most cloud validators do not provide a DPA. SplitForge's Data Validator processes entirely in Web Worker threads in your browser — the CRM error log and original CSV never reach any external server. Verify with Chrome DevTools Network tab: zero outbound requests.
Error log reading patterns in this guide were verified against Salesforce, HubSpot, Zoho CRM, and Pipedrive import error outputs, March 2026. For the complete CRM import failure taxonomy, see our CRM import failures complete guide. For understanding why specific errors occur, see Why Your CRM Rejects CSV Imports. For plain-English explanations of CSV error messages more broadly, see How to Read CSV Import Error Messages.
PLATFORM SPECIFICATION SOURCE
Platform: Salesforce, HubSpot, Zoho CRM, Pipedrive
Source: Platform import error log documentation
URLs: help.salesforce.com | knowledge.hubspot.com | help.zoho.com
Verified: March 2026
Next re-verify: June 2026
Error log formats and download locations change with platform UI updates.
The column names and error message text shown in this guide reflect
platform behavior at the verification date.
Platform Error Log Formats
Each CRM generates error reports in a different format. Here's what each one looks like and where to find it.
Salesforce — error.csv
Salesforce Data Loader generates two files after every operation: success.csv (rows that succeeded, with Salesforce IDs) and error.csv (rows that failed, with error descriptions).
Here's what a real error.csv looks like — this is the actual file format, including the noise:
❌ REAL ERROR FILE — Salesforce Data Loader error.csv (847 failed rows, trimmed):
"ID","ERROR","FIRST_NAME","LAST_NAME","EMAIL","ACCOUNT_TIER__C","STATUS","PHONE","LEADSOURCE"
"","FIELD_CUSTOM_VALIDATION_EXCEPTION; Account_Tier__c; value not found in picklist; [Hot]","Alice","Chen","[email protected]","Hot","Active","415-555-0134","Web"
"","FIELD_CUSTOM_VALIDATION_EXCEPTION; Account_Tier__c; value not found in picklist; [Hot]","Bob","Smith","[email protected]","Hot","Active","","Web"
"","FIELD_CUSTOM_VALIDATION_EXCEPTION; Account_Tier__c; value not found in picklist; [Warm]","Carol","Jones","[email protected]","Warm","Active","212-555-9021","Referral"
"","FIELD_CUSTOM_VALIDATION_EXCEPTION; Account_Tier__c; value not found in picklist; [Hot]","","Williams","bad email here","Hot","","","Trade Show"
"","INVALID_EMAIL_ADDRESS; Email; invalid email address: bad email here","","Williams","bad email here","Hot","","","Trade Show"
"","REQUIRED_FIELD_MISSING; [LeadSource]; Required fields are missing: [LeadSource]","Mark","Davis","[email protected]","","Active","",""
... 841 more rows
Sorting by ERROR column reveals:
- 680 rows: FIELD_CUSTOM_VALIDATION_EXCEPTION; Account_Tier__c; value not found in picklist; [Hot]
- 112 rows: FIELD_CUSTOM_VALIDATION_EXCEPTION; Account_Tier__c; value not found in picklist; [Warm]
- 34 rows: REQUIRED_FIELD_MISSING; [LeadSource]
- 18 rows: INVALID_EMAIL_ADDRESS
- 3 rows: DUPLICATE_VALUE
Fix order: 680+112 = 792 rows fixed with two find-replaces.
The error format is ERROR_CODE; Field_Name; Human_Message; [bad_value]. The bracketed value at the end is what was actually in your CSV. That [Hot] tells you exactly what to find-and-replace.
HubSpot — Errors CSV from Import History
HubSpot's import errors are downloadable from Contacts > Actions > Import > [import name] > Download errors.
❌ REAL ERROR FILE — HubSpot import errors CSV (actual format):
"Row Number","Email Address","First Name","Last Name","Lifecycle Stage","Error Details"
2,"","Alice","Chen","Customer","Email is required to import contacts"
7,"not-an-email","Bob","Smith","Lead","not-an-email is not a valid email address. Make sure it follows the format: [email protected]"
12,"[email protected]","Carol","Jones","Opportunity","Property 'lifecycle_stage': 'Opportunity' is not a valid option. Valid options are: subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer, evangelist, other"
18,"[email protected]","Dave","Williams","Customer","A contact with the email [email protected] already exists. To update existing records, use the update option."
31,"","Eve","Martinez","Lead","Email is required to import contacts"
47,"","Frank","","Lead","Email is required to import contacts"
... 94 more rows
Sort by Error Details:
- "Email is required" → 67 rows
- "is not a valid option" → 19 rows
- "already exists" → 8 rows
- "not a valid email address" → 6 rows
Fix order: 67 blank emails need data. 19 lifecycle stage values need mapping.
HubSpot lists ALL valid options in the error message — use them for your mapping table.
Zoho CRM — Import History errors
Zoho shows a count of failures in Setup > Data Administration > Import History and allows you to download the failed records.
❌ BROKEN — Zoho import error output (actual):
Failed Records CSV:
"First Name","Last Name","Email","Account_Tier","Error"
"Alice","Chen","[email protected]","Gold","The value 'Gold' is not valid for the field 'Account Tier'"
"Bob","Smith","[email protected]","","Required field 'Email' cannot be empty"
"Carol","Jones","carol-at-gamma","Tier 1","Invalid email format"
Zoho error column format: plain English description
Most common: "value is not valid" → picklist mismatch
"cannot be empty" → required field blank
"Invalid email format" → email format error
Error Type Classification
| Error Type | What It Means | Fix Location | Fix Action |
|---|---|---|---|
| Invalid email | Bad email format | Source CSV | Fix email format |
| Picklist/dropdown mismatch | Value not in CRM list | Source CSV | Map to valid CRM value |
| Required field missing | Blank in CSV, required in CRM | Source CSV | Populate or provide default |
| Duplicate record | Record already exists | Import settings | Enable update or skip |
| Lookup field not found | Referenced record doesn't exist | CRM first, then CSV | Create referenced record, then reimport |
| Field value too long | Value exceeds field character limit | Source CSV | Truncate or increase field length in CRM |
| Invalid date format | Date doesn't match CRM expectation | Source CSV | Convert to correct format |
| Configuration error | CRM field/profile/permission issue | CRM settings | Fix CRM setup, then reimport |
Configuration errors are the ones that waste the most time. If every row fails with the same "Required field missing" error and the field wasn't required yesterday, your CRM admin changed a field's required status. Fixing the CSV doesn't help — fix the CRM configuration first.
The Reimport-Only-Failed-Rows Rule
Never reimport the full CSV after fixing errors. The rows that succeeded are already in your CRM — reimporting them creates duplicates.
CORRECT REIMPORT WORKFLOW:
Original file: 5,000 rows
Failed rows: 800 (in error log)
Succeeded: 4,200 (already in CRM)
Step 1: Fix the 800 failed rows in the source CSV
Step 2: Save as a new file: contacts_reimport_fixed.csv (800 rows only)
Step 3: Enable deduplication in CRM import settings
Step 4: Import only contacts_reimport_fixed.csv
Step 5: Verify: CRM contact count should increase by ~800 (minus any that still fail)
WRONG (creates 4,200 duplicates):
Step 1: Fix the 800 failed rows
Step 2: Import the full original 5,000-row file again
Result: 4,200 existing contacts duplicated + 800 new contacts
To build the reimport file: copy the error log (which contains the original row data), fix the errors in the error log copy, and import that file. The error log is already filtered to just the failed rows.
Quick Answers (Common Questions)
Can I reimport only the failed rows? Yes — use the error log itself as your reimport file. It already contains your original row data. Remove the error column, fix the data errors, and import that file. It's pre-filtered to failed rows only.
Where is the Salesforce error log?
Data Loader: your output folder → error.csv. Data Import Wizard: inline after completion → "Download errors" button.
Where is the HubSpot error log? Contacts > Actions > Import > click your import name > "Download errors" link.
Why do all my rows fail with the same error? Usually a picklist value mismatch or a required field that changed after your CSV was prepared. Sort the error column, find the dominant pattern, fix it in your source CSV with find-and-replace. One change often clears 70–90% of errors.
Why does the same error keep appearing on reimports? You're fixing rows in the CRM, not in the source file. Always fix the error in the CSV, then reimport. Fixing records manually in the CRM doesn't prevent the same error on future imports.
If your imports are failing repeatedly due to volume or file size, not data errors: → See Batch CRM Import: Load 500K+ Records Without Timeouts
If you're running manual imports weekly and want to stop: → See CRM Import vs API: When to Use CSV Upload or Programmatic Load