DUPLICATE_VALUE in Salesforce-deployments oplossen

Een record of metadatacomponent die wordt aangemaakt heeft al een overeenkomende unieke waarde of Developer Name in de doel-org.

Komt voor bij: zowel runtime DML-inserts als metadata-deploymentvalidatie

Wat het betekent

DUPLICATE_VALUE betekent dat Salesforce een insert of een nieuwe metadatacomponent heeft afgewezen omdat iets eraan, een unieke veldwaarde, een external ID, of een Developer Name, al bestaat in de doel-org. Salesforce handhaaft uniciteit op platformniveau en zal het bestaande record of de bestaande component niet stilzwijgend overschrijven.

Het is een bredere verzamelnaam dan DUPLICATE_DEVELOPER_NAME of DUPLICATE_EXTERNAL_ID; dat zijn de twee meest voorkomende specifieke varianten, maar deze code kan ook optreden bij elk custom field met het Unique-attribuut ingesteld.

Diagnose

Veelvoorkomende oorzaken

Uniek veld al ingevuld
Een veld dat als uniek is gemarkeerd of een external ID heeft al een overeenkomende waarde in de doel-org, afkomstig van een eerdere load of deployment.
Parallel werk creëerde dezelfde Developer Name
Twee ontwikkelaars maakten onafhankelijk van elkaar een component, een custom field, record type of permission set aan met dezelfde Developer Name in aparte branches.
Duplicaatregels blokkeren testdata
Een duplicate of matching rule in de doel-org markeert Apex-testdata als duplicaat van een bestaand record.

De oplossing

  1. Upsert in plaats van insert
    Gebruik upsert met het juiste external ID-veld, zodat bestaande records worden bijgewerkt in plaats van opnieuw aangemaakt.
  2. Hernoem de botsende component
    Geef de nieuwere metadatacomponent een unieke Developer Name en werk alle verwijzingen ernaar bij.
  3. Controleer duplicaatregels voor testcontext
    Bevestig dat duplicate- en matching rules de specifieke recordvormen die je Apex-tests invoegen niet blokkeren.
In de praktijk

Hoe Serpent dit voorkomt

Serpent AI signaleert overlappende Developer Names tussen gelijktijdige taken voordat een van beide een deploy bereikt, zodat de botsing tijdens het scopen wordt opgevangen. Zie de bibliotheek met Salesforce-deploymentfouten.

Metadata en data in één deploymentflow in Serpent

Preventie

Gebruik standaard upsert in plaats van insert waar een external ID bestaat
Gebruik upsert als standaardpatroon voor elk object met een stabiele external key, zodat een herhaalde load nooit met zichzelf botst.
Omzeil duplicaatregels bewust in de testsetup, niet per ongeluk
Stel DMLOptions.DuplicateRuleHeader.allowSave expliciet in bij testdatafactories die records moeten invoegen die duplicate rules anders zouden markeren.
Spreek naamgevingsconventies af voordat parallel featurewerk begint
Leg Developer Name-prefixen per team of feature vast bij de kickoff, niet nadat de eerste botsing een gedeelde org bereikt.
Veelgestelde vragen

DUPLICATE_VALUE, beantwoord

Kan ik het bestaande record gewoon verwijderen en opnieuw deployen?
Alleen als het echt overbodig is. Controleer eerst wat ervan afhangt, want het verwijderen van het verkeerde duplicaat kan andere metadata die ernaar verwijst breken.
Geldt DUPLICATE_VALUE alleen voor custom fields, of ook voor standaardvelden?
Het geldt voor beide. Standaard unieke velden, zoals het Email-veld van een Contact in sommige orgconfiguraties, handhaven dezelfde beperking als een custom field met Unique aangevinkt.
Is DUPLICATE_VALUE hetzelfde als een waarschuwing van een Salesforce-duplicaatbeheerregel?
Nee. Duplicate- en matching rules in Setup zijn een zachtere, configureerbare waarschuwing of blokkade bij waarschijnlijke duplicaten; DUPLICATE_VALUE is een harde uniciteitsbeperking op platformniveau die de gebruiker niet in de UI kan overschrijven.

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.