Zo los je UNABLE_TO_LOCK_ROW op in Salesforce-deployments
Een record dat de deployment moet bijwerken is vergrendeld door een andere transactie die tegelijkertijd draait.
Verschijnt tijdens: DML tijdens runtime, een timingconflict in plaats van een metadata- of dataprobleemWat het betekent
UNABLE_TO_LOCK_ROW betekent dat Salesforce geen lock kon verkrijgen op een record omdat een andere transactie, een batchjob, een geplande flow, of een gelijktijdige Apex-test, het al aan het bijwerken was. Dit is een timingprobleem, geen metadataprobleem: de deployment of de tests ervan zijn correct, maar ze botsten met iets anders dat in de org draaide.
Het komt vooral vaak voor bij master-detail-relaties, omdat het bijwerken van een child-record een lock op de parent verkrijgt voor de herberekening van roll-up summary's, waardoor twee child-inserts die tegelijk dezelfde parent proberen bij te werken om die lock strijden.
Veelvoorkomende oorzaken
De oplossing
- Probeer de deployment opnieuwRijvergrendelingen zijn tijdelijk. Het opnieuw uitvoeren van dezelfde deployment slaagt vaak zodra de concurrerende transactie is afgerond.
- Deploy tijdens een periode met weinig activiteitPlan productiedeployments buiten kantooruren of pauzeer conflicterende geplande jobs eerst.
- Voorkom strijd om gedeelde records in testsHerstructureer Apex-tests zodat ze niet allemaal hetzelfde singleton settings-record binnen dezelfde transactie bijwerken.
for (Account parent : [SELECT Id FROM Account WHERE Id IN :parentIds FOR UPDATE]) { // lock parents explicitly and predictably before child DML }
Hoe Serpent dit voorkomt
Serpent AI plant deployments zodanig dat bekende conflicterende jobs worden vermeden, en een vergrendelde rij verschijnt als een retry met één klik op dezelfde taak in plaats van een mislukte release. Bekijk de bibliotheek met Salesforce-deploymentfouten.

Preventie
Gerelateerde fouten
UNABLE_TO_LOCK_ROW, uitgelegd
Start gratis. Geen creditcard, geen installatie, geen verplichting.
Binnen 15 minuten ingesteld. Geen DevOps-aanwerving nodig.
