Comment corriger DUPLICATE_DEVELOPER_NAME dans les déploiements Salesforce

Deux composants de métadonnées partagent le même Developer Name, que Salesforce exige unique.

Se produit lors de : la validation du déploiement de métadonnées, avant l'exécution de tout DML

Ce que cela signifie

DUPLICATE_DEVELOPER_NAME signifie que le déploiement tente de créer un composant, un record type, un global value set, un permission set, dont le Developer Name existe déjà dans l'org cible, ou entre en conflit avec un autre composant du même déploiement. Les Developer Names doivent être uniques au sein de leur namespace, donc Salesforce bloque le déploiement plutôt que de choisir un gagnant.

C'est plus fréquent sur les composants sans namespace par objet, comme les global value sets et les permission sets, car les record types et les custom fields sont limités à leur objet parent et n'entrent en conflit qu'avec leurs semblables sur le même objet.

Diagnostic

Causes courantes

Collision de développement parallèle
Deux développeurs ont créé indépendamment un composant portant le même Developer Name dans des branches ou sandbox séparées.
Un composant renommé a laissé un doublon obsolète
Un composant a été renommé dans la source, mais l'ancien Developer Name existe toujours dans l'org cible, et le déploiement tente d'en ajouter un second.
Métadonnées copiées-collées jamais renommées
Un XML de métadonnées a été dupliqué comme point de départ d'un nouveau composant, et le Developer Name n'a jamais été modifié avant le commit.

La solution

  1. Renommez le composant le plus récent
    Attribuez au composant entrant un Developer Name unique et mettez à jour toute métadonnée qui y fait référence par ce nom.
  2. Supprimez le doublon obsolète s'il n'est plus utile
    Si le composant existant dans l'org cible n'est vraiment plus nécessaire, supprimez-le avant de redéployer.
  3. Coordonnez les conventions de nommage
    Convenez d'un modèle de nommage pour les record types, value sets et permission sets au sein de l'équipe afin d'éviter de futures collisions.
En pratique

Comment Serpent évite cela

Serpent AI signale les Developer Names qui se chevauchent entre tâches concurrentes dès la phase de scoping, avant que deux branches de travail ne se percutent dans un déploiement. Voir la bibliothèque des erreurs de déploiement Salesforce.

Constructeur de pipelines CI/CD no-code dans Serpent

Prévention

Préfixez les Developer Names par équipe ou domaine fonctionnel
Adoptez une convention de nommage, comme un préfixe d'équipe ou de module, pour les global value sets et permission sets, afin que deux personnes travaillant en parallèle ne choisissent pas le même nom.
Récupérez des métadonnées fraîches avant de créer un nouveau composant
Synchronisez avec l'org cible juste avant d'ajouter un record type ou un value set, afin qu'un nom déjà existant y soit d'abord visible localement.
Ne laissez jamais un Developer Name copié-collé sans le modifier
Faites du renommage du Developer Name et du label la toute première modification lors de la duplication d'un fichier de métadonnées existant en guise de modèle.
Questions fréquentes

DUPLICATE_DEVELOPER_NAME, les réponses

Salesforce résout-il parfois automatiquement une collision de Developer Name ?
Non. Salesforce bloque toujours le déploiement plutôt que de renommer ou fusionner silencieusement les composants, donc le conflit doit être résolu manuellement.
Puis-je renommer un Developer Name après la création du composant ?
Pour la plupart des types de métadonnées, non ; le Developer Name est défini à la création et reste effectivement permanent. Vous pouvez généralement changer le label, mais le Developer Name sous-jacent reste fixe.
Les Developer Names doivent-ils être uniques dans toute l'org, ou seulement par objet ?
Cela dépend du type de métadonnées. Les record types et les custom fields sont limités à leur objet, donc le même nom peut exister sur deux objets différents ; les global value sets et permission sets sont à l'échelle de l'org et doivent être uniques partout.

Commencez gratuitement. Sans carte bancaire, sans installation, sans engagement.

Configuration en moins de 15 minutes. Aucune embauche DevOps nécessaire.

Curieux de livrer plus vite avant de vous lancer ? Parlons-en

Sans engagement.