CorceLinkDocumentation Espace client

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

CodeStatutSignification
invalid_cursor400Curseur invalide
Utilisez la valeur next_cursor de la page précédente.
invalid_json400Corps JSON invalide
Le corps doit être un objet JSON valide, encodé en UTF-8.
invalid_parameter400Paramètre invalide
Le paramètre […] n’est pas valide.
invalid_request400Requête mal formée
api_key_expired401Clé API expirée
Créez une nouvelle clé dans Mon compte > Accès API.
api_key_revoked401Clé API révoquée
Cette clé a été révoquée. Créez-en une nouvelle dans Mon compte > Accès API.
invalid_api_key401Clé API invalide
Vérifiez la clé, ou créez-en une dans Mon compte > Accès API.
missing_api_key401Clé API absente
Envoyez votre clé dans l’en-tête Authorization: Bearer clk_live_…
account_inactive403Compte inactif
Le compte rattaché à cette clé n’est pas actif.
feature_unavailable403Fonction non incluse
Cette fonction n’est pas incluse dans l’offre de ce VPS.
ip_not_allowed403Adresse IP non autorisée
L’adresse […] ne figure pas dans la liste autorisée de cette clé.
missing_scope403Permission manquante
Cette clé n’a pas la permission […].
rule_managed403Rè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_found404Ressource introuvable
Rien à l’adresse […] sur ce compte : vérifiez l’identifiant.
route_not_found404Adresse inconnue
Aucune route […]. La référence est sur docs.corcelink.fr/api/.
method_not_allowed405Méthode non autorisée
Méthodes acceptées : […].
firewall_full409Nombre 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_required409Pare-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_progress409Requête déjà en cours
Une requête avec la même clé d’idempotence est en cours de traitement.
invalid_state409Action impossible dans l’état actuel
Le VPS est […].
operation_in_progress409Opération déjà en cours
position_not_allowed409Position impossible
Une règle ne peut pas être placée au-dessus des règles gérées par CorceLink (position minimale : […]).
resource_busy409Modification en cours
Une autre modification de cette ressource est en cours : réessayez dans un instant.
service_not_active409Service inactif
Le service est […] : cette action n’est possible que sur un service actif.
precondition_failed412La ressource a changé
Relisez la ressource et renvoyez son ETag dans If-Match.
unsupported_media_type415Type de contenu non pris en charge
Envoyez Content-Type: application/json.
confirmation_required422Confirmation requise
Cette opération efface des données : envoyez confirm: true pour la confirmer.
idempotency_key_reused422Clé d’idempotence déjà utilisée
Cette clé a déjà servi pour une requête différente.
operation_refused422Opération refusée
L’hyperviseur a refusé l’opération : […]
reverse_dns_mismatch422Le nom ne pointe pas vers l’adresse
[…] doit d’abord pointer vers […] (enregistrement A ou AAAA).
validation_failed422Données invalides
Le détail figure dans errors.
rate_limited429Trop de requêtes
Réessayez dans […] secondes.
internal_error500Erreur interne
Réessayez, puis contactez le support en citant le request_id.
task_failed502Opération en échec
La tâche de l’hyperviseur a échoué ; detail donne sa cause quand elle est connue.
task_lost502Opération sans nouvelles
L’hyperviseur n’a pas rendu compte de cette opération dans l’heure : vérifiez l’état du service.
service_unavailable503Service momentanément indisponible
Réessayez dans quelques instants.

Erreurs de validation

Dans une erreur validation_failed, chaque élément de errors désigne un champ et porte l’un de ces codes :

CodeMessage
requiredChamp obligatoire.
invalidValeur invalide.
too_longTrop long.
not_inValeur non autorisée : […].
port_protocolUn port ne peut être indiqué que pour TCP ou UDP.
invalid_ssh_keyClé publique OpenSSH invalide (ssh-ed25519, ssh-rsa, ecdsa…), dix au plus.
not_foundAucun VPS de ce compte ne porte cet identifiant.
rejected[…]
reserved_prefixTrop long (60 caractères au plus) ou commence par un préfixe réservé.