Servor. docs
en

Erreurs

Comment l'API Servor signale les erreurs — réponses JSON typées et codes de statut 401, 403, 404, 422 et 429, avec la cause et la solution pour chacun.

Lorsqu'une requête ne peut pas aboutir, l'API Servor renvoie un code de statut HTTP standard et un corps JSON typé. Cette page montre la forme d'une réponse d'erreur et liste chaque code de statut que vous rencontrerez, avec sa cause et la façon d'y remédier.

Forme d'une erreur

Chaque erreur est un JSON avec un champ error lisible, un champ code stable et exploitable par une machine, et parfois un objet details apportant plus de contexte :

{
  "error": "Missing required scope: incidents:write",
  "code": "forbidden",
  "details": { "required": "incidents:write" }
}

Dans votre intégration, testez le code plutôt que le texte de error : le message peut être reformulé, mais le code reste stable.

Codes de statut

StatutSignificationCause typique
401Non authentifiéJeton absent, mal formé ou invalide.
403InterditJeton valide, mais dépourvu du scope requis.
404IntrouvableLa ressource n'existe pas, ou n'appartient pas à votre équipe.
422Non traitableLe corps de la requête a échoué à la validation.
429Trop de requêtesVous avez atteint la limite de débit.

401 — Non authentifié

Le jeton est absent, mal formé, ou n'est plus valide (par exemple parce qu'il a été révoqué).

  • Vérifiez que l'en-tête est exactement Authorization: Bearer sv_live_....
  • Confirmez que le jeton n'a pas été révoqué ni remplacé.
  • Vérifiez-le avec GET /v1/me — voir Authentification.
{ "error": "Invalid or missing token", "code": "unauthorized" }

403 — Interdit

Le jeton est valide mais ne porte pas le scope exigé par l'endpoint. C'est l'erreur la plus fréquente quand une intégration s'étend à un nouvel endpoint.

{
  "error": "Missing required scope: monitors:read",
  "code": "forbidden",
  "details": { "required": "monitors:read" }
}

404 — Introuvable

L'id de la ressource n'existe pas, ou appartient à une autre équipe que celle de votre jeton. Un jeton ne voit que les données de sa propre équipe : un id valide provenant d'une autre équipe renvoie donc quand même 404.

  • Revérifiez l'id et qu'il appartient bien à votre équipe.
  • Confirmez que la ressource n'a pas été supprimée dans le tableau de bord.
{ "error": "Server not found", "code": "not_found" }

422 — Entité non traitable

La requête a atteint un endpoint valide, mais le corps a échoué à la validation — champ obligatoire manquant, mauvais type ou valeur invalide. Vous le verrez surtout sur les endpoints incidents:write.

  • Lisez details pour les problèmes champ par champ et corrigez la charge utile.
  • Vérifiez les champs obligatoires (par exemple, un incident exige un titre et un statut).
{
  "error": "Validation failed",
  "code": "validation_error",
  "details": { "title": "Required", "status": "Invalid value" }
}

429 — Trop de requêtes

Vous avez dépassé la limite de débit par jeton. La réponse inclut un en-tête retry-after indiquant combien de secondes attendre.

  • Lisez retry-after et patientez exactement ce délai avant de réessayer.
  • Voir limites de débit pour un modèle de réessai prêt à l'emploi.
{ "error": "Rate limit exceeded", "code": "rate_limited" }

Pas de 423 sur les jetons de lecture

Un 423 (coffre verrouillé) ne peut provenir que d'actions nécessitant un coffre déverrouillé dans le navigateur — l'exécution de commandes. L'API publique n'exécute jamais de commande et n'expose aucun endpoint de ce type : les jetons de lecture et d'automatisation d'incidents ne le rencontreront donc pas. Le déverrouillage du coffre relève du tableau de bord — voir déverrouiller votre coffre.

Bien gérer les erreurs

  • Testez le code, pas le message. Les codes sont stables ; la formulation peut changer.
  • Traitez le 429 comme un contrôle de flux. Faites du back-off et réessayez au lieu d'échouer brutalement.
  • Échouez bruyamment sur 401/403. Ils signalent un problème de jeton ou de scope à corriger — faites la rotation du jeton ou accordez le bon scope.
  • Journalisez details sur un 422. Il indique exactement quel champ corriger.

Voir aussi