Your Salesforce Data Loader import succeeded last week.
Then Monday morning: "TRANSFER_REQUIRES_READ: The new owner must have read permission" on 847 of 1,200 records.
You check Setup. Object permissions: correct. Field-level security: valid. You export the user list, verify Owner IDs. Everything matches.
You test again with the same CSV. Same 847 failures.
TL;DR: Salesforce TRANSFER_REQUIRES_READ errors occur when CSV owner fields contain data quality issues that fail validation before permission checks—75% are CSV problems, not permission problems. Common causes: mixed owner formats (User IDs + usernames + names in same column), duplicate owner values with formatting variations, UTF-8 encoding corruption of international names, inactive/deactivated users in owner column, invalid 18-character User ID format. Fix in 4 minutes using browser-based tools that validate owner format, remove duplicates, fix encoding, and standardize values—processed locally without uploading sensitive organizational data.
This guide solves the 8 CSV preparation errors that account for 95% of TRANSFER_REQUIRES_READ failures during import—using privacy-first validation that processes files locally. No uploads. No forum posts. No import surprises.
Who this guide is for: Salesforce administrators, data migration specialists, and operations teams performing bulk record transfers experiencing TRANSFER_REQUIRES_READ errors despite correct permissions.
Quick Fix (Fixes 80% of Cases)
If your Salesforce import fails with TRANSFER_REQUIRES_READ, try these three fixes first:
→ Standardize owner format — All User IDs OR all usernames (no mixing)
→ Remove duplicate owners — Eliminate case/spacing variations
→ Validate against active users — Export active user list, verify all owners exist
Use Data Cleaner to validate and fix in 2 minutes. For general guidance on Salesforce picklist and field validation errors, see our guide to Salesforce bad value errors. If imports still fail, use the full diagnostic guide below.
Table of Contents
- Understanding the Error
- Quick Diagnosis Table
- Category 1: Owner Field Format Issues
- Category 2: Duplicate Owner Values
- Category 3: Encoding & Hidden Characters
- Category 4: Permission Validation
- Privacy-First Preparation Workflow
- Prevention Best Practices
- FAQ
Understanding the Error
TRANSFER_REQUIRES_READ errors occur when Salesforce validates record ownership transfers during CSV import—75% stem from CSV data quality issues, not permission configuration.
What the Error Actually Means
TRANSFER_REQUIRES_READ: The new owner must have read permission
This error appears during CSV import when Salesforce attempts to transfer record ownership but validation fails.
Permission-based failures (25% of cases): New owner lacks Read permission on object, field-level security blocks access, record type assignment missing, sharing rules prevent transfer.
CSV data issues (75% of cases): Owner field contains invalid username format, Owner ID doesn't match 18-character Salesforce format, duplicate owner entries cause batch processing conflicts, encoding errors corrupt owner values, hidden characters break parsing.
The key insight: Most admins troubleshoot permissions when the actual problem is CSV data quality. Salesforce validates owner data BEFORE checking permissions—malformed owner values fail validation and return TRANSFER_REQUIRES_READ even when permissions are correct.
The Three Owner Field Formats Salesforce Accepts
1. Salesforce User ID (18 characters) - Format: 005XXXXXXXXXXXXXXX, validation: strict, case-insensitive, fastest performance (direct lookup)
2. Username (email-style format) - Format: [email protected], exact match required, case-insensitive, fast (indexed field)
3. Full Name - Format: John Smith, fuzzy match (First + Last Name), case-insensitive, slow performance, can cause duplicates
Critical: Data Import Wizard supports all three formats. Data Loader requires User ID or Username only—Full Name causes failures.
Quick Diagnosis Table
| Symptom | Likely Cause | Fix |
|---|---|---|
| Works yesterday, fails today | Inactive user deactivated | Export active users, validate CSV against list |
| Only first row fails | UTF-8 BOM at file start | Remove BOM with Data Cleaner |
| Data Loader fails, Wizard works | Full Name format used | Convert to User ID or Username |
| Random rows fail (847 of 1,200) | Mixed owner formats in CSV | Standardize all to single format |
| All rows fail with same error | Wrong tool for format | Use Wizard for Full Names, Loader for IDs |
| Fails on users with accents (é, ü, ñ) | Encoding corruption | Save as UTF-8, use Data Cleaner |
The Data Upload Risk During Troubleshooting
When TRANSFER_REQUIRES_READ errors occur, admins often expose sensitive organizational data: posting CSV samples to Salesforce forums, uploading to online validators, sharing files via Slack/email with consultants, or using third-party debugging tools.
CSV files containing: Employee usernames and email addresses, organizational hierarchy and reporting structure, user role assignments and access patterns, department associations and team composition.
Compliance requirements: SOC 2 Type II requirements mandate that user access data qualifies as sensitive system information. Unauthorized disclosure violates audit controls for logical access management.
The solution: Client-side validation tools process files in your browser per Web Workers API specs. No uploads, no third-party processors, no compliance risk. For a complete privacy-first CSV workflow, see our data privacy checklist.
Category 1: Owner Field Format Issues
CSV files mix User IDs, Usernames, and Full Names in the Owner column—Salesforce expects consistent format and fails when encountering unexpected formats.
Mixing Owner Formats
The problem: CSV contains mixed formats in Owner column—some rows have User IDs (005XXXXXXXXXXXXXXX), others have usernames ([email protected]), others have Full Names (John Smith). Data Loader expects consistent format. First mismatched row triggers TRANSFER_REQUIRES_READ.
The fix: Standardize owner format across entire CSV. Export user list from Salesforce (Setup → Users → Export), create VLOOKUP mapping Username → User ID, apply to Owner column.
Email vs Username Mismatches
The problem: CSV contains email addresses but Salesforce expects usernames:
Username: [email protected] (sandbox)
Email: [email protected] (production)
Common scenarios: Sandbox username suffixes (.dev, .sandbox), company domain changes (rebranding), SSO federated IDs differ from corporate email.
The fix: Export current user list with Username field, compare CSV values against usernames, use Data Cleaner Find & Replace to correct mismatches.
Invalid User ID Format
The problem: Owner IDs don't match 18-character format—truncated (8 characters), wrong prefix (003 is Contact, need 005 for User), or corrupted by Excel stripping leading zeros.
The fix: Validate all IDs are 18 characters starting with "005". Export fresh user list, use VLOOKUP to replace corrupted IDs.
Category 2: Duplicate Owner Values
CSV contains multiple records assigned to same owner, but owner value appears with slight variations that cause batch processing conflicts.
Duplicate Usernames with Formatting Variations
The problem: Owner values have case or whitespace differences:
[email protected]
[email protected]
[email protected]
Salesforce performs case-insensitive matching but Data Loader creates separate transfer queues for formatting variations. Second queue triggers re-validation. Returns TRANSFER_REQUIRES_READ.
The fix: Standardize all owner values—convert to lowercase, trim whitespace. Use Data Cleaner to eliminate variations at 400K rows/sec.
Inactive Users
The problem: CSV contains owner values pointing to deactivated users. Data Loader finds username but user is inactive. Validation fails.
Common scenarios: Employee departures, department reorganizations, contractor accounts expired.
The fix: Export user list including Active flag, filter to Active=True only, compare CSV owners against active users, reassign inactive owners.
Duplicate Full Names
The problem (Data Import Wizard only): CSV uses Full Name format ("John Smith"). Salesforce has three active users named John Smith. Import Wizard finds multiple matches, can't determine correct owner, rejects import.
The fix: Never use Full Name format. Convert to Username or User ID.
Category 3: Encoding & Hidden Characters
CSV encoding issues corrupt owner values with international characters, and hidden characters prevent exact username matching.
UTF-8 Encoding Corruption
The problem: Non-UTF-8 encoding corrupts special characters:
Correct: franç[email protected]
Corrupted: franç[email protected]
Common triggers: European names (é, ü, ñ) corrupted by Windows-1252 encoding, Asian characters destroyed by ASCII encoding.
The fix: Save CSV with UTF-8 encoding. Excel: File → Save As → "CSV UTF-8 (Comma delimited)". Google Sheets: File → Download → CSV (always UTF-8). Use Data Cleaner to fix encoding at 400K rows/sec.
Hidden Characters
The problem: Owner values contain invisible characters:
Visible: [email protected]
Actual: [email protected]​ (zero-width space)
Data Loader performs exact string match. Hidden characters prevent match.
Common sources: Copy-paste from web browsers (HTML zero-width spaces), CRM exports, Excel CONCATENATE formulas.
The fix: Use Data Cleaner to automatically remove hidden characters, control characters, zero-width spaces, and non-breaking spaces at 400K rows/sec.
Category 4: Permission Validation
After CSV data passes format validation, Salesforce validates permissions—true permission issues account for 25% of TRANSFER_REQUIRES_READ errors.
Object-level permission missing: New owner lacks Read permission on object. Fix: Setup → Profiles → Object Settings → Enable Read.
Field-level security blocking: New owner lacks Read access to required fields. Fix: Setup → Profiles → Field-Level Security → Enable Read on required fields.
Record Type assignment: New owner not assigned to record's Record Type. Fix: Setup → Record Types → assign to owner's Profile.
Sharing rule conflicts: Private sharing model blocks ownership transfer. Fix: Temporarily change to Public Read/Write or manually share records.
The key: These are legitimate permission errors requiring Setup changes, not CSV cleanup. But they account for only 25% of TRANSFER_REQUIRES_READ errors. Fix CSV data quality first, then troubleshoot permissions if errors persist.
Privacy-First Preparation Workflow
4-Minute Process to Fix TRANSFER_REQUIRES_READ Errors:
-
Validate Owner Format (2 min) - Use Format Checker to confirm all values match same format (ID/Username/Full Name), User IDs are 18 characters starting with "005", no mixed formats
-
Remove Duplicates (1 min) - Use Data Cleaner to eliminate case-insensitive duplicates and whitespace variations
-
Clean Encoding (1 min) - Use Data Cleaner to convert to UTF-8, remove BOM markers, strip hidden characters and non-printing bytes
-
Validate Active Users (5 min) - Export active user list from Salesforce (Setup → Users → Active=True), compare CSV owner values, validate all exist and are active
-
Test Import (2 min) - Import 10-20 test records in Data Loader, verify ownership transfers successfully, check for errors. If test succeeds → import full file. If fails → return to Step 1.
Total time: 11 minutes for 100K-row CSV
Privacy guarantee: Zero data uploads, all processing client-side
Prevention Best Practices
Export Owner Values Correctly: Always include OwnerId field (18-character ID), never use Owner Name for re-import (display field only).
Validate Before Every Import: Pre-import checklist—UTF-8 encoding (no BOM), consistent owner format, no duplicate values, all users active, test with 10-20 records first. For comprehensive CSV troubleshooting across all platforms, see our CSV troubleshooting guide.
Maintain User Reference File: Create master reference with User ID, Username, Full Name, Email, Active flag. Update weekly. Use as VLOOKUP source. Store offline securely.
FAQ
Conclusion
Salesforce TRANSFER_REQUIRES_READ errors are preventable. 75% of failures trace to CSV data quality issues: malformed owner values, duplicate entries, encoding problems, and format inconsistencies. Only 25% are actual permission issues.
Traditional troubleshooting wastes time and exposes data: Hours of Setup verification when problem is CSV format, posting owner data publicly seeking help, repeated import failures without identifying root cause, uploading sensitive user/org data to third-party validators.
Privacy-first preparation prevents failures without uploads: 4-minute validation identifies all Owner column issues, 300K-400K rows/sec client-side processing using Web Workers, zero data exposure (files never leave browser), SOC 2-compliant (no third-party processor).
Most common mistakes: Using Full Name format in Data Loader (requires User ID or Username), mixing owner formats in same CSV, assuming Excel exports maintain UTF-8 encoding, not validating against active users before import, opening CSV in Excel before import (corrupts 18-character User IDs).
The solution: Browser-based preparation tools that validate and clean Owner columns at speeds matching Salesforce's own import performance—without privacy and compliance risks.
Fix TRANSFER_REQUIRES_READ errors before they happen with Data Cleaner for privacy-first CSV validation and owner field cleaning.
Sources:
- Salesforce Help - Official Salesforce CSV import documentation
- AICPA SOC 2 - SOC 2 Type II audit requirements for data handling
- MDN Web Workers API - Client-side processing specification
Managing Salesforce data imports? Connect on LinkedIn or share your workflow at @splitforge.