Erreurs
Le format des erreurs, leurs codes stables et la conduite à tenir pour chacun.
Toute erreur suit le format RFC 9457 (application/problem+json). Le code est stable : c’est lui que vos programmes doivent tester, jamais le texte du message, qui peut évoluer et suit la langue demandée.
{
"type": "https://docs.corcelink.fr/api/erreurs/#validation_failed",
"title": "Données invalides",
"status": 422,
"code": "validation_failed",
"request_id": "req-01JB7X4M2Q9KZ3AB",
"detail": "Le détail figure dans errors.",
"errors": [
{"field": "ports", "code": "port_protocol", "message": "Un port ne peut être indiqué que pour TCP ou UDP."}
]
}
| Champ | Contenu |
|---|---|
type |
Adresse de l’explication de l’erreur, dans cette page |
title |
Résumé, en français ou en anglais selon Accept-Language |
status |
Code HTTP |
code |
Code stable, à tester dans vos programmes |
request_id |
Identifiant de la requête, à citer au support (aussi dans l’en-tête X-Request-Id) |
detail |
Explication et correction possible, si utile |
errors |
Erreurs de validation, champ par champ |
Que faire selon le code HTTP
| Statut | Signification | Réessayer ? |
|---|---|---|
400, 404, 415, 422 |
La requête est à corriger | Non, pas telle quelle |
401, 403 |
Clé ou permission à revoir | Non |
409 |
Conflit avec l’état actuel (opération en cours, ressource occupée) | Oui, après un délai |
412 |
La ressource a changé depuis votre lecture | Relisez, puis renvoyez avec le nouvel ETag |
429 |
Quota atteint | Oui, après Retry-After secondes |
500, 503 |
Incident de notre côté ou hyperviseur indisponible | Oui, avec la même clé d’idempotence |
Tous les codes
| Code | Statut | Signification |
|---|---|---|
invalid_cursor | 400 | Curseur invalide Utilisez la valeur next_cursor de la page précédente. |
invalid_json | 400 | Corps JSON invalide Le corps doit être un objet JSON valide, encodé en UTF-8. |
invalid_parameter | 400 | Paramètre invalide Le paramètre […] n’est pas valide. |
invalid_request | 400 | Requête mal formée |
api_key_expired | 401 | Clé API expirée Créez une nouvelle clé dans Mon compte > Accès API. |
api_key_revoked | 401 | Clé API révoquée Cette clé a été révoquée. Créez-en une nouvelle dans Mon compte > Accès API. |
invalid_api_key | 401 | Clé API invalide Vérifiez la clé, ou créez-en une dans Mon compte > Accès API. |
missing_api_key | 401 | Clé API absente Envoyez votre clé dans l’en-tête Authorization: Bearer clk_live_… |
account_inactive | 403 | Compte inactif Le compte rattaché à cette clé n’est pas actif. |
feature_unavailable | 403 | Fonction non incluse Cette fonction n’est pas incluse dans l’offre de ce VPS. |
ip_not_allowed | 403 | Adresse IP non autorisée L’adresse […] ne figure pas dans la liste autorisée de cette clé. |
missing_scope | 403 | Permission manquante Cette clé n’a pas la permission […]. |
rule_managed | 403 | Règle gérée par CorceLink Cette règle protège vos réseaux privés : elle ne peut être ni modifiée ni supprimée. |
not_found | 404 | Ressource introuvable Rien à l’adresse […] sur ce compte : vérifiez l’identifiant. |
route_not_found | 404 | Adresse inconnue Aucune route […]. La référence est sur docs.corcelink.fr/api/. |
method_not_allowed | 405 | Méthode non autorisée Méthodes acceptées : […]. |
firewall_full | 409 | Nombre maximal de règles atteint Un pare-feu compte […] règles au plus : regroupez des ports dans une même règle (80,443). |
firewall_required | 409 | Pare-feu indispensable Le pare-feu protège vos réseaux privés : il ne peut pas être désactivé tant que le VPS y est relié. |
idempotency_in_progress | 409 | Requête déjà en cours Une requête avec la même clé d’idempotence est en cours de traitement. |
invalid_state | 409 | Action impossible dans l’état actuel Le VPS est […]. |
operation_in_progress | 409 | Opération déjà en cours |
position_not_allowed | 409 | Position impossible Une règle ne peut pas être placée au-dessus des règles gérées par CorceLink (position minimale : […]). |
resource_busy | 409 | Modification en cours Une autre modification de cette ressource est en cours : réessayez dans un instant. |
service_not_active | 409 | Service inactif Le service est […] : cette action n’est possible que sur un service actif. |
precondition_failed | 412 | La ressource a changé Relisez la ressource et renvoyez son ETag dans If-Match. |
unsupported_media_type | 415 | Type de contenu non pris en charge Envoyez Content-Type: application/json. |
confirmation_required | 422 | Confirmation requise Cette opération efface des données : envoyez confirm: true pour la confirmer. |
idempotency_key_reused | 422 | Clé d’idempotence déjà utilisée Cette clé a déjà servi pour une requête différente. |
operation_refused | 422 | Opération refusée L’hyperviseur a refusé l’opération : […] |
reverse_dns_mismatch | 422 | Le nom ne pointe pas vers l’adresse […] doit d’abord pointer vers […] (enregistrement A ou AAAA). |
validation_failed | 422 | Données invalides Le détail figure dans errors. |
rate_limited | 429 | Trop de requêtes Réessayez dans […] secondes. |
internal_error | 500 | Erreur interne Réessayez, puis contactez le support en citant le request_id. |
task_failed | 502 | Opération en échec La tâche de l’hyperviseur a échoué ; detail donne sa cause quand elle est connue. |
task_lost | 502 | Opération sans nouvelles L’hyperviseur n’a pas rendu compte de cette opération dans l’heure : vérifiez l’état du service. |
service_unavailable | 503 | Service momentanément indisponible Réessayez dans quelques instants. |