DUPLICATE_DEVELOPER_NAME in Salesforce-deployments oplossen

Twee metadatacomponenten delen dezelfde Developer Name, die Salesforce uniek vereist.

Komt voor bij: metadata-deploymentvalidatie, voordat er DML wordt uitgevoerd

Wat het betekent

DUPLICATE_DEVELOPER_NAME betekent dat de deployment probeert een component, een record type, een global value set, een permission set, aan te maken waarvan de Developer Name al bestaat in de doel-org, of botst met een andere component in dezelfde deployment. Developer Names moeten uniek zijn binnen hun namespace, dus Salesforce blokkeert de deploy in plaats van een winnaar te kiezen.

Dit komt het vaakst voor bij componenten zonder namespace per object, zoals global value sets en permission sets, aangezien record types en custom fields gescopet zijn naar hun bovenliggende object en alleen botsen met soortgenoten op datzelfde object.

Diagnose

Veelvoorkomende oorzaken

Botsing door parallelle ontwikkeling
Twee ontwikkelaars maakten onafhankelijk van elkaar een component met dezelfde Developer Name aan in aparte branches of sandboxes.
Hernoemde component liet een verouderd duplicaat achter
Een component is hernoemd in de bron, maar de oude Developer Name bestaat nog in de doel-org, en de deploy probeert een tweede toe te voegen.
Gekopieerde metadata nooit hernoemd
Metadata-XML is gedupliceerd als startpunt voor een nieuwe component, en de Developer Name is nooit gewijzigd vóór het committen.

De oplossing

  1. Hernoem de nieuwere component
    Geef de binnenkomende component een unieke Developer Name en werk alle metadata bij die er via die naam naar verwijst.
  2. Verwijder het verouderde duplicaat indien overbodig
    Als de bestaande component in de doel-org echt niet meer nodig is, verwijder deze dan voordat je opnieuw deployt.
  3. Coördineer naamgevingsconventies
    Spreek binnen het team een naamgevingspatroon af voor record types, value sets en permission sets om toekomstige botsingen te voorkomen.
In de praktijk

Hoe Serpent dit voorkomt

Serpent AI signaleert overlappende Developer Names tussen gelijktijdige taken al tijdens het scopen, voordat twee werkstromen ooit botsen in een deploy. Zie de bibliotheek met Salesforce-deploymentfouten.

No-code CI/CD-pipelinebuilder in Serpent

Preventie

Geef Developer Names een prefix per team of functiegebied
Hanteer een naamgevingsconventie, zoals een team- of moduleprefix, voor global value sets en permission sets, zodat twee mensen die parallel bouwen niet snel dezelfde naam kiezen.
Haal verse metadata op voordat je een nieuwe component maakt
Synchroniseer met de doel-org vlak voordat je een record type of value set toevoegt, zodat een naam die daar al bestaat eerst lokaal zichtbaar wordt.
Laat een gekopieerde Developer Name nooit onbewerkt
Maak het hernoemen van de Developer Name en het label de allereerste bewerking bij het dupliceren van een bestaand metadatabestand als sjabloon.
Veelgestelde vragen

DUPLICATE_DEVELOPER_NAME, beantwoord

Lost Salesforce een Developer Name-botsing ooit automatisch op?
Nee. Salesforce blokkeert de deployment altijd in plaats van componenten stilzwijgend te hernoemen of samen te voegen, dus het conflict moet handmatig worden opgelost.
Kan ik een Developer Name hernoemen nadat de component is aangemaakt?
Voor de meeste metadatatypen niet; de Developer Name wordt bij aanmaak vastgelegd en is in de praktijk permanent. Je kunt meestal wel het label wijzigen, maar de onderliggende Developer Name blijft vast.
Moeten Developer Names uniek zijn binnen de hele org, of alleen per object?
Dat hangt af van het metadatatype. Record types en custom fields zijn gescopet naar hun object, dus dezelfde naam kan op twee verschillende objecten bestaan; global value sets en permission sets gelden org-breed en moeten overal uniek zijn.

Start gratis. Geen creditcard, geen installatie, geen verplichting.

Binnen 15 minuten ingesteld. Geen DevOps-aanwerving nodig.

Benieuwd naar sneller releasen voordat je instapt? Laten we praten

Vrijblijvend.