Documentación
Errores

Errores

Cómo informa de los errores la API y qué significa cada código.

La API devuelve los errores en el array errors estándar de GraphQL; el estado HTTP sigue siendo 200 y data puede ser null o parcial. Cada error dice de qué tipo es en extensions.code, y una petición rechazada dice por qué en extensions.reasonCode.

RESPUESTA
{
  "errors": [
    {
      "message": "Input does not meet data validation rules.",
      "path": ["issueCreate"],
      "extensions": {
        "code": "VALIDATION",
        "reasonCode": "REQUIRED",
        "field": "issueCreate.title",
        "reason": "title is required"
      }
    }
  ],
  "data": null
}

Errores en cualquier petición

Estos pueden devolverse en cualquier operación de toda la API.

UNAUTHENTICATEDTu clave de API falta, es inválida o ha caducado.
RATE_LIMITHas enviado demasiadas peticiones; espera antes de reintentar.
INTERNALSe ha producido un error inesperado del servidor; reinténtalo más tarde.

Errores específicos

Según la operación y los datos que envíes, una petición también puede devolver:

NOT_FOUNDEl recurso no existe o tu organización no puede acceder a él.
VALIDATIONLa petición se ha rechazado por lo que pedía. extensions.reasonCode dice por qué: consulta «Rechazos» más abajo.
INPUTUn ID o un token que no se puede leer: un fallo del cliente o un enlace roto, nunca algo que haya escrito una persona. Trátalo como NOT_FOUND.
CONSTRAINTDos peticiones se han disputado la misma escritura y esta ha perdido. Normalmente basta con volver a intentarlo.

Rechazos

Una petición rechazada siempre es VALIDATION, con estas extensiones. Decide según reasonCode, nunca según message, que es la misma frase en todos los rechazos.

reasonCodePor qué se ha rechazado la petición, como una palabra estable. Úsala como clave de traducción.
fieldDónde está el problema dentro de la petición: el nombre de la operación y luego la ruta dentro de lo que has enviado, sin el envoltorio input y con las posiciones de las listas desde cero (domainUpdate.nameServers[1]). No aparece cuando el rechazo es de la petición entera.
paramsValores que necesita la explicación, como kind o un nombre de host. No aparece cuando no hay ninguno.
reasonLa misma explicación en inglés, para desarrolladores. No está pensada para mostrarla a los usuarios.

Motivos que puede dar cualquier operación

Además de los motivos que se indican en cada operación, cualquiera puede responder con estos. En los cuatro últimos, params.kind dice de qué tipo de elemento trata el rechazo (PROJECT, DNS_ZONE, DNS_RECORD…).

MALFORMEDUn valor no tiene la forma esperada. reason dice qué falla.
REQUIREDFalta un valor, o se ha enviado null en un campo que no se puede vaciar.
TOO_LARGEUn texto o un archivo supera el tamaño permitido. params.maxBytes es el límite.
NOT_FOUNDAlgo a lo que se refiere la petición no existe o es de otra organización.
TAKENEl nombre ya lo usa otro elemento.
IN_USENo se puede eliminar mientras algo lo siga usando.
DELETEDEstá eliminado y no se puede cambiar nada hasta que se restaure.