SF-Data-Arch Data Migration Practice Question
A data architect is migrating 12 million Opportunity records into a new Salesforce org. The legacy system uses a custom 'Opportunity_Key__c' that must be populated for integration purposes. During a test load using the Bulk API in parallel mode, the team observes that some records fail with 'UNABLE_TO_LOCK_ROW' errors. What is the most likely cause of these errors?
⚠ Common exam trap
The trap here is attributing row lock errors to API limits or field configuration rather than to concurrent DML on shared parent records.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Multiple batches in parallel are attempting to update the same parent Account records, causing row-level lock contention.
UNABLE_TO_LOCK_ROW errors during parallel Bulk API loads typically occur when concurrent batches attempt to update child records that reference the same parent records. Salesforce locks parent records to enforce referential integrity, and simultaneous access causes contention. Reducing parallelism or serializing the load for affected objects resolves the issue.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Multiple batches in parallel are attempting to update the same parent Account records, causing row-level lock contention.
Why this is correct
When Opportunities are loaded in parallel, Salesforce processes multiple batches concurrently. If these Opportunities share parent Account records, Salesforce must lock those parent records to maintain referential integrity, leading to UNABLE_TO_LOCK_ROW errors when concurrent batches contend for the same parent. This is a classic symptom of parallelism combined with shared parent references.
- ✗
The custom 'Opportunity_Key__c' field is not marked as an external ID, preventing proper indexing and causing locks.
Why it's wrong here
Whether a field is an external ID affects upsert matching and indexing, but it does not cause UNABLE_TO_LOCK_ROW errors. Row locking is about concurrent DML on the same records or their parents, not about field-level indexing. The error is specifically about lock contention, not about lookup performance or matching.
- ✗
The parallel mode uses a single batch that is too large, exceeding the record lock timeout threshold.
Why it's wrong here
Bulk API parallel mode splits the job into multiple batches processed concurrently, not a single large batch. A single large batch would more likely cause a timeout or heap size issue rather than row lock contention. The UNABLE_TO_LOCK_ROW error arises from concurrent transactions competing for the same records, which is a hallmark of parallel processing with shared parents.
- ✗
The Bulk API parallel mode exceeds the daily API request limit, causing lock contention.
Why it's wrong here
The Bulk API does not consume the daily API request limit in the same way as synchronous calls; it uses batches and has separate limits. UNABLE_TO_LOCK_ROW errors are not caused by API request limits but by record-level locking contention. Daily API limits would produce a different error, such as 'REQUEST_LIMIT_EXCEEDED', not a row lock failure.
Visual reference
About these practice questions
One of 222 original SF-Data-Arch practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Salesforce exam blueprint
This SF-Data-Arch practice question is part of Courseiva's free Salesforce certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SF-Data-Arch exam.