Salesforce UNABLE_TO_LOCK_ROW Error

Share
Workaround available Bulk API, Apex, integrations Updated November 13, 2026Based on 4 user reportsHow we research

Quick answer

Two processes tried to update the same record (often a parent) at once. Run integrations serially, group child records by parent, and reduce concurrency.

Most likely fix: Run the load in serial mode

How to fix it

Try these in order — the most common fix is first.

  1. 1. Run the load in serial mode

    1. In Data Loader enable Use Bulk API and set Serial mode
    2. In integration tools set concurrency to 1
    3. Lower batch size
    Did this fix it?
  2. 2. Sort data by parent

    1. Sort the file by parent ID so children of one parent land in the same batch
    Did this fix it?
  3. 3. Check parent records and schedule

    1. The locked ID shown may be a parent you did not edit
    2. Stagger batch jobs and run heavy ones off-peak
    3. Move roll-up work to async where possible
    Did this fix it?
  4. 4. Add retry as a safety net

    1. Catch the exception and retry in a Queueable; retry alone does not fix contention
    Did this fix it?

Symptoms

Data loads, integrations or tests fail with UNABLE_TO_LOCK_ROW: unable to obtain exclusive access to this record.

Why it happens

  • Parallel Bulk API batches touching the same parent
  • Roll-up summary recalculation on master-detail parents
  • Integration concurrency above 1
  • Overlapping scheduled jobs and active users

This guide also covers

  • unable to lock row salesforce
  • salesforce record lock error

Still not working?

If Salesforce keeps failing, you're not alone. See every Salesforce problem users report or the alternatives people switch to.

Done fighting Salesforce? Our small team builds your own Salesforce alternative, made for how you work. On your domain or hosted by us. Price agreed together.

Get a quote
Fixed it? Share this guide

The same problem in other apps

All not loading, error messages & connection guides →

Other Salesforce errors

All 10 Salesforce errors and fixes →