Comment corriger INVALID_ID_FIELD dans les déploiements Salesforce
Un ID d'enregistrement transmis à une recherche ou une opération DML est mal formé, a une longueur incorrecte, ou appartient au mauvais objet.
Se produit lors de : DML à l'exécution et assignation de recherche, pas lors du déploiement de métadonnéesCe que cela signifie
INVALID_ID_FIELD signifie que l'ID reçu par Salesforce ne correspond à aucun enregistrement valide pour le champ auquel il a été transmis. C'est presque toujours un ID codé en dur ou mal manipulé : une longueur incorrecte, une casse incorrecte, ou un ID appartenant à un objet différent de celui attendu par le champ.
Chaque ID d'enregistrement Salesforce porte un préfixe de clé à trois caractères identifiant son objet, 001 pour Account, 003 pour Contact, et ainsi de suite, donc cette erreur remonte souvent à un ID du mauvais objet assigné à une recherche qui en attend un autre.
Causes courantes
La solution
- Toujours utiliser l'ID à 18 caractèresStandardisez sur l'ID d'enregistrement à 18 caractères insensible à la casse dans le code, et ne codez jamais en dur une version à 15 caractères.
- Rechercher plutôt par un ID externeRemplacez les ID d'enregistrement codés en dur par une requête sur un ID externe stable ou un champ unique, afin que la référence se résolve correctement selon l'org.
- Vérifier que le type d'objet correspondVérifiez le préfixe de clé à trois caractères de l'ID par rapport à l'objet attendu par le champ avant de le transmettre.
Id anyId = '001XXXXXXXXXXXXXXX'; String prefix = String.valueOf(anyId).left(3); System.debug(Schema.getGlobalDescribe().values());
Comment Serpent évite cela
Serpent AI résout les références par clé métier plutôt que par ID d'enregistrement brut lors du déplacement des changements entre environnements, si bien que ce type d'erreur n'atteint jamais un déploiement. Consultez la bibliothèque des erreurs de déploiement Salesforce.

Prévention
Erreurs associées
INVALID_ID_FIELD, expliqué
Démarrez gratuitement. Sans carte bancaire, sans installation, sans engagement.
Configuration en moins de 15 minutes. Aucun recrutement DevOps nécessaire.
