Comment corriger DUPLICATE_EXTERNAL_ID dans les déploiements Salesforce
Un upsert correspond à plusieurs enregistrements existants ayant la même valeur d'ID externe, donc Salesforce ne peut pas déterminer lequel mettre à jour.
Apparaît pendant : le DML upsert lors des chargements de données, des intégrations et dans ApexCe que cela signifie
DUPLICATE_EXTERNAL_ID signifie qu'un appel upsert a trouvé plusieurs enregistrements dans l'org cible partageant la même valeur dans le champ d'ID externe utilisé pour la correspondance. L'upsert repose sur l'unicité réelle de ce champ par enregistrement ; en présence de doublons, Salesforce n'a aucun moyen de décider quel enregistrement les données entrantes doivent mettre à jour, donc il rejette l'opération plutôt que de deviner.
Il s'agit purement d'un problème d'état des données dans l'org cible, pas d'un défaut de la charge utile entrante elle-même ; le même appel upsert réussirait dès que les valeurs dupliquées de l'org cible seraient résolues.
Causes courantes
La solution
- Dédupliquez d'abord les enregistrements partageant l'ID externeInterrogez l'org cible pour trouver la valeur en cause, déterminez quel enregistrement fait autorité, et fusionnez ou supprimez le reste avant de réessayer.
SELECT External_Id__c, COUNT(Id) FROM Account GROUP BY External_Id__c HAVING COUNT(Id) > 1 - Activez l'attribut Unique sur le champModifiez la définition du champ d'ID externe afin que Salesforce applique l'unicité à l'avenir et bloque les nouveaux doublons à l'insertion.
- Utilisez une clé composite plus spécifiqueSi deux enregistrements légitimement différents peuvent partager la valeur de base, combinez-la avec un second champ afin que la correspondance soit sans ambiguïté.
Comment Serpent évite cela
Serpent maintient chaque sandbox et scratch org synchronisé depuis la même source, ce qui rend beaucoup moins probable l'accumulation de valeurs d'ID externe dupliquées issues de données obsolètes chargées manuellement entre les environnements. Consultez la bibliothèque des erreurs de déploiement Salesforce.

Prévention
Erreurs associées
DUPLICATE_EXTERNAL_ID, expliqué
Commencez gratuitement. Sans carte bancaire, sans installation, sans engagement.
Configuration en moins de 15 minutes. Aucune embauche DevOps nécessaire.
