LIMIT_EXCEEDED oplossen in Salesforce-deployments
De Apex-tests van een deployment, of de dataload erachter, raakten een van Salesforce's governor- of orgbrede limieten.
Treedt op bij: uitvoering van Apex-tests of bulk-dataoperaties, niet bij de validatie van de metadata-deploy zelfWat het betekent
LIMIT_EXCEEDED omvat een familie van Salesforce-limieten, meestal Apex-governorlimieten zoals SOQL-query's, DML-instructies of CPU-tijd, die worden geraakt tijdens de testuitvoering die een deployment vereist. Het kan ook betekenen dat een orgbrede limiet, zoals dagelijkse API-aanroepen of massa-e-mailontvangers, is overschreden door automatisering die de deployment activeert.
Per-transactie governorlimieten (100 SOQL-query's, 150 DML-instructies, 10.000 CPU-milliseconden synchroon) worden bij elke transactie gereset, dus dit wijst bijna altijd op niet-gebulkte code binnen één transactie in plaats van een echt capaciteitsplafond op de org.
Veelvoorkomende oorzaken
De oplossing
- Bulkify het codepad dat de limiet raaktHerschrijf de trigger, klasse of test om te werken op collecties in plaats van individuele records, waardoor het aantal SOQL- en DML-aanroepen per transactie afneemt.
// Bad: SOQL inside a loop for (Account a : accounts) { List<Contact> cons = [SELECT Id FROM Contact WHERE AccountId = :a.Id]; } // Good: one query outside the loop Map<Id, List<Contact>> conMap = new Map<Id, List<Contact>>(); for (Contact c : [SELECT Id, AccountId FROM Contact WHERE AccountId IN :accountIds]) { if (!conMap.containsKey(c.AccountId)) conMap.put(c.AccountId, new List<Contact>()); conMap.get(c.AccountId).add(c); } - Verminder de testdatavolume tot het minimumBeperk de Apex-testsetup tot de kleinste dataset die de te testen logica nog steeds uitoefent.
- Controleer orglimieten vóór grote deploymentsBekijk API- en andere dagelijkse limieten in Setup voordat u een bulk-dataload of deployment uitvoert die toevoegt aan het gebruik dat die dag al is verbruikt.
Hoe Serpent dit voorkomt
Serpent reserveert vooraf opgewarmde scratch-orgs voor testruns, zodat een bulktest of dataload een schone set limieten raakt in plaats van te concurreren met alles wat al draait in een gedeelde sandbox. Zie de bibliotheek met Salesforce-deploymentfouten.

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