Champ inconnu
type | https://docs.frem.sh/reference/api/errors/unknown-field |
| Statut HTTP | 400 Bad Request |
Ce que cela signifie
Le corps de la requête contenait un champ que l’endpoint ne reconnaît pas : il a donc été rejeté plutôt qu’ignoré.
Les endpoints qui acceptent des mises à jour partielles traitent un champ absent comme « ne pas toucher ». Un nom de champ qu’ils ne connaissent pas ne se distingue pas d’un champ absent : l’ignorer silencieusement renverrait donc 200 pour une modification qui n’a jamais eu lieu. Ces endpoints refusent donc plutôt la requête entière.
Exemples de messages detail renvoyés avec cette erreur :
- Unrecognised field(s): “securityAutomerge” (did you mean “security_automerge”?). Accepted fields are: enabled, automerge_patch, automerge_minor, major_approval, security_automerge, schedule, pr_hourly_limit, pr_concurrent_limit.
- Unrecognised field(s): “automerge_everything”. Accepted fields are: enabled, automerge_patch, automerge_minor, major_approval, security_automerge, schedule, pr_hourly_limit, pr_concurrent_limit.
Que faire
Lisez detail : il nomme chaque champ non reconnu et liste ceux que l’endpoint accepte.
Vérifiez d’abord la casse. Les champs de requête sont en snake_case, comme les noms de colonnes sous-jacents. Plusieurs endpoints sérialisent leurs réponses en camelCase : copier un nom de champ depuis le corps d’une réponse et le renvoyer est donc la cause la plus fréquente de cette erreur. Lorsque le champ envoyé est l’orthographe camelCase d’un champ réel, detail nomme l’orthographe correcte.
// rejected - camelCase, as returned in a response body
{ "securityAutomerge": true }
// accepted
{ "security_automerge": true }Sinon, comparez le corps avec le schéma de requête dans la spécification OpenAPI.
Forme de la réponse
Toutes les erreurs de l’API fremforge sont au format problem+json de la RFC 9457 :
{
"type": "https://docs.frem.sh/reference/api/errors/unknown-field",
"title": "Bad Request",
"status": 400,
"detail": "..."
}Basez votre logique sur type, et non sur title ou detail : ces champs sont destinés à être lus par un humain et peuvent être reformulés.