Back to Blog
csv-troubleshooting

Fix Salesforce TRANSFER_REQUIRES_READ Error Before CSV Import

January 5, 2026
14
By SplitForge Team

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

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

SymptomLikely CauseFix
Works yesterday, fails todayInactive user deactivatedExport active users, validate CSV against list
Only first row failsUTF-8 BOM at file startRemove BOM with Data Cleaner
Data Loader fails, Wizard worksFull Name format usedConvert to User ID or Username
Random rows fail (847 of 1,200)Mixed owner formats in CSVStandardize all to single format
All rows fail with same errorWrong tool for formatUse Wizard for Full Names, Loader for IDs
Fails on users with accents (é, ü, ñ)Encoding corruptionSave 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:

  1. 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

  2. Remove Duplicates (1 min) - Use Data Cleaner to eliminate case-insensitive duplicates and whitespace variations

  3. Clean Encoding (1 min) - Use Data Cleaner to convert to UTF-8, remove BOM markers, strip hidden characters and non-printing bytes

  4. 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

  5. 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

Data Import Wizard accepts Full Name format for owners and performs fuzzy matching. Data Loader requires User ID or Username and performs exact matching only. Your CSV likely contains Full Name format ("John Smith"). Convert to Username or User ID format using Find & Replace at 300K rows/sec.

Check if users were deactivated between yesterday and today. Common causes: employee departure, role changes, temporary accounts expired. Export current active user list from Salesforce, compare against your CSV owner values, flag inactive users. Use Data Cleaner to identify inactive owner assignments before import.

Your CSV contains UTF-8 BOM (Byte Order Mark) at file start. BOM adds invisible bytes to first row's values. Username lookup fails on row 1 only. Fix: Save CSV as "UTF-8 without BOM" or use Data Cleaner to automatically remove BOM at 400K rows/sec.

75% of TRANSFER_REQUIRES_READ errors are CSV data issues, not permission issues. Verify your Owner column contains valid User ID or Username format, check for duplicate entries, validate UTF-8 encoding, remove hidden characters. Use Format Checker to validate structure before troubleshooting permissions.

Only if the error is permission-based (25% of cases). If the error is CSV data quality (75% of cases), changing sharing model won't help. Fix CSV data first: Format Checker → Data Cleaner → Find & Replace. Test import with 10 records. If still failing, then investigate permissions.

Data Loader error file shows Record ID and owner value for each failure. Export unique owner values from error file, compare against Salesforce active user list, identify mismatches. Common patterns: inactive users, username format mismatches, duplicate Full Names, corrupted values. Use Data Cleaner to fix at 400K rows/sec.

Dealing with other CSV import errors? See our complete guide: CSV Import Errors: Every Cause, Every Fix (2026)

Struggling with CRM import failures? See our complete guide: CRM Import Failures: Every Error, Every Fix (2026)



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:


Managing Salesforce data imports? Connect on LinkedIn or share your workflow at @splitforge.

Fix Salesforce Import Errors—No Data Uploads Required

Validate owner field formats in seconds before import
Remove duplicates and encoding errors automatically
Zero uploads—your org data never leaves your browser
Prevent TRANSFER_REQUIRES_READ failures before they happen

Continue Reading

More guides to help you work smarter with your data

csv-guides

How to Audit a CSV File Before Processing

You inherited a CSV from a vendor. Before you load it into anything, you need to know what's actually in it — without trusting the filename.

Read More
csv-guides

Combine First and Last Name Columns in CSV for CRM Import

Your CRM requires a single Full Name column but your export has First and Last split. Here's how to combine them across 100K rows in 30 seconds.

Read More
csv-guides

Data Profiling vs Validation: What Each Reveals in Your CSV

Everyone says 'validate your CSV before import.' But validation can only check what you already know to look for. Profiling finds what you didn't know to check.

Read More