Zo los je CIRCULAR_DEPENDENCY op in Salesforce-deployments
Twee of meer metadatacomponenten verwijzen naar elkaar, waardoor Salesforce geen geldige deploymentvolgorde kan bepalen.
Verschijnt tijdens: validatie van metadata-deployment, voordat er een test wordt uitgevoerdWat het betekent
CIRCULAR_DEPENDENCY treedt op wanneer twee componenten, meestal Apex-klassen, custom metadata-records of record types, elkaar vereisen om eerst te bestaan. De Metadata API deployt componenten in afhankelijkheidsvolgorde, en een lus betekent dat er geen geldige volgorde is die aan beide voldoet.
Apex is de meest voorkomende trigger, omdat de compiler klasseverwijzingen tijdens de deployment oplost: als de signatuur van Klasse A verwijst naar Klasse B en de signatuur van Klasse B verwijst naar Klasse A, kan geen van beide op zichzelf compileren, alleen samen in dezelfde deploymenttransactie.
Veelvoorkomende oorzaken
De oplossing
- Deploy eerst een stub om de lus te doorbrekenDeploy één kant van het paar met een minimale of lege implementatie, en deploy de echte logica vervolgens in een tweede stap.
- Combineer beide componenten in één deploymentBundel de onderling afhankelijke klassen of metadata in één deployment, zodat Salesforce de hele set samen oplost in plaats van ze afzonderlijk te ordenen.
sf project deploy start --source-dir force-app/main/default/classes/ClassA.cls force-app/main/default/classes/ClassB.cls - Refactor om de wederzijdse verwijzing te verwijderenHaal de gedeelde logica uit naar een derde klasse of interface, zodat geen van de originele componenten rechtstreeks afhankelijk is van de ander.
Hoe Serpent dit voorkomt
Serpent houdt bij welke componenten een taak raakt en signaleert onderling afhankelijke componenten voordat ze over aparte taken worden verdeeld, zodat een circulair paar samen wordt gedeployed in plaats van halverwege te mislukken. Bekijk de bibliotheek met Salesforce-deploymentfouten.

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