APIs de Google: errores de dominio global

En este documento, se identifican algunos códigos de error y mensajes que devuelven las APIs de Google. En especial, los errores que se mencionan aquí se encuentran en el dominio global, o predeterminado, de las API de Google. Muchas API también definen sus propios dominios, que identifican errores específicos de la API que no corresponden al dominio global. Para esos errores, el valor de la propiedad domain en la respuesta de JSON será un valor específico de la API, como youtube.parameter.

En esta página, se enumeran los errores por código de estado HTTP, como se define en RFC 7231.

La respuesta de JSON de ejemplo que aparece a continuación demuestra cómo se comunica un error global:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalidParameter",
    "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]",
    "locationType": "parameter",
    "location": "chart"
   }
  ],
  "code": 400,
  "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]"
 }
}

Errores

  1. MOVED_PERMANENTLY (301)
  2. SEE_OTHER (303)
  3. NOT_MODIFIED (304)
  4. TEMPORARY_REDIRECT (307)
  5. BAD_REQUEST (400)
  6. UNAUTHORIZED (401)
  7. PAYMENT_REQUIRED (402)
  8. FORBIDDEN (403)
  9. NOT_FOUND (404)
  10. METHOD_NOT_ALLOWED (405)
  11. CONFLICT (409)
  12. GONE (410)
  13. PRECONDITION_FAILED (412)
  14. REQUEST_ENTITY_TOO_LARGE (413)
  15. REQUESTED_RANGE_NOT_SATISFIABLE (416)
  16. EXPECTATION_FAILED (417)
  17. PRECONDITION_REQUIRED (428)
  18. TOO_MANY_REQUESTS (429)
  19. INTERNAL_SERVER_ERROR (500)
  20. NOT_IMPLEMENTED (501)
  21. SERVICE_UNAVAILABLE (503)

MOVED_PERMANENTLY (301)

Código de error Descripción
movedPermanently Esta solicitud y las solicitudes futuras de la misma operación se deben enviar a la URL especificada en el encabezado Location para esta respuesta, en lugar de la URL a la que se envió.

SEE_OTHER (303)

Código de error Descripción
seeOther Se procesó correctamente la solicitud. Para obtener la respuesta, envía una solicitud GET a la URL especificada en el encabezado Location.
mediaDownloadRedirect Se procesó correctamente la solicitud. Para obtener la respuesta, envía una solicitud GET a la URL especificada en el encabezado Location.

NOT_MODIFIED (304)

Código de error Descripción
notModified No se cumplió la condición establecida para un encabezado "If-None-Match". Esta respuesta indica que no se modificó el documento solicitado y que se debería obtener una respuesta almacenada en caché. Comprueba el valor del encabezado de la solicitud HTTP If-None-Match.

TEMPORARY_REDIRECT (307)

Código de error Descripción
temporaryRedirect Para que se procese tu solicitud, vuelve a enviarla a la URL especificada en el encabezado Location de esta respuesta.

BAD_REQUEST (400)

Código de error Descripción
badRequest La solicitud a la API no es válida o no está formulada correctamente. Por lo tanto, el servidor de la API no la supo interpretar.
badBinaryDomainRequest La solicitud de dominio binario no es válida.
badContent El tipo de contenido de los datos de la solicitud o el de una parte de una solicitud de varias partes no es compatible.
badLockedDomainRequest La solicitud de dominio bloqueado no es válida.
corsRequestWithXOrigin La solicitud CORS contiene un encabezado "XD3 X-Origin", lo cual indica que se trata de una solicitud CORS no válida.
endpointConstraintMismatch La solicitud falló porque no coincide con la API especificada. Comprueba el valor de la ruta de URL para asegurarte de que sea correcto.
invalid La solicitud falló porque contenía un valor no válido. Se podría tratar de un valor de parámetro, de encabezado o de propiedad.
invalidAltValue El valor del parámetro alt especifica un formato de salida desconocido.
invalidHeader La solicitud falló porque contenía un encabezado no válido.
invalidParameter La solicitud falló porque contenía un parámetro o un valor del parámetro no válido. Revisa la documentación de la API para determinar qué parámetros son válidos para tu solicitud.
invalidQuery La solicitud no es válida. Revisa la documentación de la API para determinar qué parámetros son compatibles con la solicitud y comprobar si esta contiene una combinación o un valor del parámetro no válido. Verifica el valor del parámetro de la solicitud q.
keyExpired Venció la clave de API proporcionada en la solicitud, lo que significa que el servidor de la API no puede verificar el límite de cuota para la aplicación que realiza la solicitud. Consulta Google Developers Console para obtener más información o una clave nueva.
keyInvalid La clave de API proporcionada en la solicitud no es válida, lo que significa que el servidor de la API no puede comprobar el límite de cuota para la aplicación que realiza la solicitud. Usa Google Developers Console para encontrar tu clave de API o conseguir una.
lockedDomainCreationFailure El token de OAuth se recibió en la cadena de consulta, que esta API prohíbe para formatos de respuesta que no sean JSON o XML. Si es posible, intenta enviar el token de OAuth en el encabezado de Autorización.
notDownload Solo las solicitudes de descarga multimedia se pueden enviar a rutas de URL /download/*. Vuelve a enviar la solicitud a la misma ruta, pero sin el prefijo /download.
notUpload La solicitud falló porque no es una solicitud de carga, y solo se pueden enviar este tipo de solicitudes a los URI /upload/*. Vuelve a enviar la solicitud a la misma ruta, pero sin el prefijo /upload.
parseError El servidor de la API no puede analizar el cuerpo de la solicitud.
required Falta información obligatoria en la solicitud a la API. La información requerida podría ser un parámetro o una propiedad de un recurso.
tooManyParts La solicitud de varias partes falló porque contiene demasiadas partes.
unknownApi No se reconoce la API a la que llama la solicitud.
unsupportedMediaProtocol El cliente está usando un protocolo multimedia no compatible.
unsupportedOutputFormat El valor del parámetro alt especifica un formato de salida que no se admite en este servicio. Comprueba el valor del parámetro de la solicitud alt.
wrongUrlForUpload La solicitud es de carga, pero falló porque no se envió al URI correcto. Las solicitudes de carga se deben enviar a los URI que contengan el prefijo /upload/*. Vuelve a enviar la solicitud a la misma ruta, pero con el prefijo /upload.

UNAUTHORIZED (401)

Código de error Descripción
unauthorized El usuario no tiene autorización para hacer la solicitud.
authError Las credenciales de autorización proporcionadas para la solicitud no son válidas. Comprueba el valor del encabezado de la solicitud HTTP Authorization.
expired La sesión caducó. Comprueba el valor del encabezado de la solicitud HTTP Authorization.
lockedDomainExpired La solicitud falló porque caducó un dominio bloqueado que anteriormente era válido.
required El usuario debe acceder para realizar esta solicitud a la API. Comprueba el valor del encabezado de la solicitud HTTP Authorization.

PAYMENT_REQUIRED (402)

Código de error Descripción
dailyLimitExceeded402 Se alcanzó el límite de presupuesto diario establecido por el desarrollador.
quotaExceeded402 La operación solicitada necesita más recursos de los que permite la cuota. Se requiere un pago para completar la operación.
user402 La operación solicitada requiere que el usuario autenticado realice algún tipo de pago.

FORBIDDEN (403)

Código de error Descripción
forbidden La operación solicitada está prohibida y no se puede completar.
accessNotConfigured Tu proyecto no está configurado para acceder a esta API. Usa Google Developers Console a fin de activar la API para tu proyecto.
accessNotConfigured El proyecto se bloqueó debido a un abuso. Consulta http://support.google.com/code/go/developer_compliance.
accessNotConfigured El proyecto se marcó para su eliminación.
accountDeleted Se borró la cuenta de usuario asociada con las credenciales de autorización de la solicitud. Comprueba el valor del encabezado de la solicitud HTTP Authorization.
accountDisabled Se inhabilitó la cuenta de usuario asociada con las credenciales de autorización de la solicitud. Comprueba el valor del encabezado de la solicitud HTTP Authorization.
accountUnverified No se verificó la dirección de correo electrónico del usuario que hace la solicitud. Comprueba el valor del encabezado de la solicitud HTTP Authorization.
concurrentLimitExceeded La solicitud falló porque se alcanzó un límite de uso simultáneo.
dailyLimitExceeded Se alcanzó un límite de cuota diario para la API.
dailyLimitExceeded Se alcanzó el límite de cuota diario y el proyecto se bloqueó debido a un abuso. Consulta el formulario de ayuda de cumplimiento para las API de Google, que te ayudará a resolver el problema.
dailyLimitExceededUnreg La solicitud falló porque se alcanzó un límite diario para la API sin autenticar. El uso continuo de la API requiere el registro mediante Google Developers Console.
downloadServiceForbidden La API no admite un servicio de descarga.
insufficientAudience La solicitud no se puede completar para este público.
insufficientAuthorizedParty La solicitud no se puede completar para esta aplicación.
insufficientPermissions El usuario autenticado no tiene suficientes permisos para ejecutar esta solicitud.
limitExceeded La solicitud no se puede completar debido a límites de acceso o frecuencia.
lockedDomainForbidden Esta API no admite dominios bloqueados.
quotaExceeded La operación solicitada necesita más recursos de los que permite la cuota.
rateLimitExceeded Se enviaron demasiadas solicitudes en un período determinado.
rateLimitExceededUnreg Se superó un límite de frecuencia. Debes registrar tu aplicación para poder seguir llamando a la API. Regístrate mediante Google Developers Console.
responseTooLarge El recurso solicitado es demasiado grande para mostrarse.
servingLimitExceeded Ya se alcanzó el límite de frecuencia general especificado para la API.
sslRequired Se requiere SSL para realizar esta operación.
unknownAuth El servidor de la API no reconoce el esquema de autorización que se usó para la solicitud. Comprueba el valor del encabezado de la solicitud HTTP Authorization.
userRateLimitExceeded La solicitud falló porque se alcanzó un límite de frecuencia por usuario.
userRateLimitExceededUnreg La solicitud falló porque se alcanzó un límite de frecuencia por usuario y no se identificó al desarrollador cliente en la solicitud. Usa Google Developers Console (https://console.developers.google.com) a fin de crear un proyecto para tu aplicación.
variableTermExpiredDailyExceeded La solicitud falló porque venció una cuota de término variable y se alcanzó un límite diario.
variableTermLimitExceeded La solicitud falló porque se alcanzó un límite de cuota de término variable.

NOT_FOUND (404)

Código de error Descripción
notFound La operación solicitada falló porque no se pudo encontrar un recurso asociado con la solicitud.
notFound No se pudo encontrar un recurso asociado con la solicitud. Si no usaste esta API durante las últimas dos semanas, vuelve a implementar la app de App Engine y vuelve a realizar la llamada.
unsupportedProtocol El protocolo que se usó en la solicitud no es compatible.

METHOD_NOT_ALLOWED (405)

Código de error Descripción
httpMethodNotAllowed El método HTTP asociado con la solicitud no es compatible.

CONFLICT (409)

Código de error Descripción
conflict No es posible completar la solicitud a la API porque la operación solicitada entraría en conflicto con un elemento existente. Por ejemplo, una solicitud que intenta crear un elemento duplicado generaría un conflicto, aunque los elementos duplicados suelen identificarse con errores más específicos.
duplicate La operación solicitada falló porque se intentó crear un recurso que ya existe.

GONE (410)

Código de error Descripción
deleted La solicitud falló porque se borró el recurso asociado con ella.

PRECONDITION_FAILED (412)

Código de error Descripción
conditionNotMet No se cumplió la condición establecida en el encabezado de la solicitud HTTP If-Match o If-None-Match. Para obtener información, consulta la sección ETag de la especificación HTTP. Comprueba el valor del encabezado de la solicitud HTTP If-Match.

REQUEST_ENTITY_TOO_LARGE (413)

Código de error Descripción
backendRequestTooLarge La solicitud es demasiado grande.
batchSizeTooLarge La solicitud de lote contiene demasiados elementos.
uploadTooLarge La solicitud falló porque el tamaño de los datos enviados en ella es demasiado grande.

REQUESTED_RANGE_NOT_SATISFIABLE (416)

Código de error Descripción
requestedRangeNotSatisfiable La solicitud especificó un rango que no se puede satisfacer.

EXPECTATION_FAILED (417)

Código de error Descripción
expectationFailed El servidor no puede cumplir con una expectativa del cliente.

PRECONDITION_REQUIRED (428)

Código de error Descripción
preconditionRequired La solicitud requiere una condición previa que no se proporcionó. Para que se procese esta solicitud de forma correcta, debes incluir un encabezado If-Match o If-None-Match con ella.

TOO_MANY_REQUESTS (429)

Código de error Descripción
rateLimitExceeded Se enviaron demasiadas solicitudes en un intervalo determinado.

INTERNAL_SERVER_ERROR (500)

Código de error Descripción
internalError La solicitud falló debido a un error interno.

NOT_IMPLEMENTED (501)

Código de error Descripción
notImplemented No se implementó la operación solicitada.
unsupportedMethod La solicitud falló porque intenta ejecutar un método o una operación desconocidos.

SERVICE_UNAVAILABLE (503)

Código de error Descripción
backendError Se produjo un error de backend.
backendNotConnected La solicitud falló debido a un error de conexión.
notReady El servidor de la API no está listo para aceptar solicitudes.