Comment corriger INVALID_FIELD dans les déploiements Salesforce
Une requête SOQL, une formule ou une automatisation référence un nom d'API de champ qui n'existe pas sur cet objet dans l'org cible.
Se manifeste lors de : compilation Apex ou exécution SOQL, le plus souvent lors de l'exécution de testsCe que cela signifie
INVALID_FIELD signifie que Salesforce n'a pas trouvé le nom de champ utilisé dans une requête SOQL, une formule ou une automatisation sur l'objet interrogé, dans l'org où s'exécute le déploiement ou le test. Contrairement à MISSING_FIELD, spécifique aux vues de liste et aux rapports, INVALID_FIELD apparaît le plus souvent dans les tests Apex, les requêtes SOQL ou les champs de formule, à la compilation ou à l'exécution.
Comme Apex compile contre le schéma en direct de l'org au moment du déploiement, une requête référençant un champ pas encore arrivé fait échouer la compilation de toute la classe, pas seulement de cette méthode de test, ce qui explique pourquoi cette erreur bloque souvent bien plus de tests que celui qui a réellement besoin du champ.
Causes courantes
La solution
- Déployer le champ avant le code qui l'interrogeSéquencez le déploiement du champ avant tout code Apex ou Flow qui le référence dans une requête SOQL.
- Mettre à jour chaque référence après un renommageRecherchez l'ancien nom d'API dans le code Apex, les Flows et les champs de formule, et remplacez-le par le nom actuel.
grep -rln "Legacy_Score__c" force-app/main/default/ - Confirmer que le champ appartient à l'objet interrogéVérifiez l'objet du champ dans Setup par rapport à l'objet de la clause SOQL FROM ou du contexte de formule.
Comment Serpent évite cela
Serpent AI délimite une tâche par tout ce qu'elle touche, y compris les champs qu'un test Apex ou un Flow interroge, de sorte qu'un champ dont dépend un test soit livré dans la même tâche plutôt que dans une tâche ultérieure. Voir la bibliothèque des erreurs de déploiement Salesforce.

Prévention
Erreurs associées
INVALID_FIELD, expliqué
Démarrez gratuitement. Pas de carte bancaire, pas d'installation, aucun engagement.
Configuration en moins de 15 minutes. Aucun recrutement DevOps nécessaire.
