Dépannage·Avancé·4 min·Mis à jour le 05/10/2026
Note de terrain · Taxe
« No such column » alors que la colonne existe
Une classe Apex figée sur une version d’API ancienne ne voit pas les champs ajoutés dans une version plus récente — même en SOQL dynamique.
Un adaptateur fiscal interrogeait l’objet de taux sur un code postal et un code produit. La requête répondait No such column. Les champs étaient visibles au describe de l’objet, présents dans l’interface, et renseignés.
La cause était la version d’API de la classe Apex. Ces deux champs n’existent qu’à partir de l’API 66.0. Une classe enregistrée sur une version antérieure ne les voit pas, et le SOQL dynamique n’échappe pas à la restriction — ce qui rend l’affaire coûteuse, puisque construire la requête sous forme de chaîne est exactement ce qu’on essaie ensuite.
Le signal à reconnaître : un champ qui existe partout sauf à l’intérieur d’une classe Apex. Vérifiez la version d’API de la classe avant de toucher à la requête.
Ça va de pair avec un piège de la même famille : un champ custom fraîchement déployé est invisible à SOQL et à Apex tant que la FLS n’est pas accordée, et SOQL répond « No such column » pour ça aussi — ce qui se lit exactement comme un échec de déploiement.