La API de Google Drive muestra 2 niveles de información de error:
- Mensajes y códigos de error de HTTP en el encabezado
- Un objeto JSON en el cuerpo de la respuesta con detalles adicionales que pueden ayudarte a determinar cómo manejar el error.
Las apps de Drive deben detectar y manejar todos los errores que se puedan encontrar cuando se use la API de REST. En esta guía, se proporcionan instrucciones para resolver errores específicos de la API.
Cómo resolver un error 400: Solicitud incorrecta
Este error puede deberse a cualquiera de los siguientes problemas en tu código:
- No se proporcionó un campo o parámetro obligatorio.
- El valor proporcionado o una combinación de campos proporcionados no es válido.
- Intentaste agregar un superior duplicado a un archivo de Drive.
- Intentaste agregar un elemento superior que crearía un ciclo en el gráfico del directorio.
A continuación, se incluye un ejemplo de representación JSON del error:
{
"error": {
"code": 400,
"errors": [
{
"domain": "global",
"location": "orderBy",
"locationType": "parameter",
"message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order.",
"reason": "badRequest"
}
],
"message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order."
}
}
Para corregir este error, revisa el campo message
y ajusta tu código según corresponda.
Cómo resolver un error 400: Solicitud para compartir no válida
Este error se puede generar por varios motivos. Para determinar el límite que se superó, evalúa el campo reason
del JSON que se muestra. Por lo general, este error se produce por los siguientes motivos:
- El uso compartido se realizó correctamente, pero el correo electrónico de notificación no se entregó correctamente.
- No se permite el cambio de la lista de control de acceso (LCA) para este usuario.
El campo message
indica el error real.
Se compartió correctamente, pero el correo electrónico de notificación no se entregó correctamente
A continuación, se muestra la representación JSON del error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidSharingRequest",
"message": "Bad Request. User message: \"Sorry, the items were successfully shared but emails could not be sent to email@domain.com.\""
}
],
"code": 400,
"message": "Bad Request"
}
}
Para corregir este error, informa al usuario (quien comparte) que no pudo compartir el contenido porque no se pudo enviar la notificación por correo electrónico a la dirección con la que desea hacerlo. El usuario debe asegurarse de tener la dirección de correo electrónico correcta y de que pueda recibir correos electrónicos.
No se permite el cambio de la LCA para este usuario
A continuación, se muestra la representación JSON del error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidSharingRequest",
"message": "Bad Request. User message: \"ACL change not allowed.\""
}
],
"code": 400,
"message": "Bad Request"
}
}
Para corregir este error, comprueba la configuración de uso compartido del Google Workspace dominio al que pertenece el archivo. Es posible que la configuración prohíba el uso compartido fuera del dominio o que no se permita compartir una unidad compartida.
Resuelva el error 401: Credenciales no válidas
El error 401 indica que el token de acceso que estás usando está vencido o no es válido. Este error también puede deberse a la falta de autorización para los permisos solicitados. A continuación, se muestra la representación JSON del error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization",
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
Para corregir este error, actualiza el token de acceso con el token de actualización de larga duración. Si esto falla, dirige al usuario a través del flujo de OAuth, como se describe en la información de autenticación y autorización específica de la API.
Cómo resolver un error 403
Se produce un error 403 cuando se excede un límite de uso o el usuario no tiene los privilegios correctos. Para determinar el tipo específico de error, evalúa el campo reason
del JSON que se muestra. Este error se produce en las siguientes situaciones:
- Se superó el límite diario.
- Se superó el límite de frecuencia del usuario.
- Se superó el límite de frecuencia del proyecto.
- Se superó el límite de frecuencia de uso compartido.
- El usuario no le otorgó a tu app los derechos de un archivo.
- El usuario no tiene permisos suficientes para un archivo.
- No se puede usar tu app dentro del dominio del usuario que accedió.
- Se superó la cantidad de elementos en una carpeta.
Para obtener más información sobre los límites de la API de Drive, consulta Límites de uso. Para obtener información sobre los límites de las carpetas de Drive, consulta Límites de carpetas en Google Drive.
Cómo resolver un error 403: Se superó el límite diario
Un error dailyLimitExceeded
indica que se alcanzó el límite de cortesía de la API para tu proyecto. A continuación, se muestra la representación JSON del error:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceeded",
"message": "Daily Limit Exceeded"
}
],
"code": 403,
"message": "Daily Limit Exceeded"
}
}
Este error aparece cuando el propietario de la aplicación establece un límite de cuota para restringir el uso de un recurso en particular. Para corregir este error, quita todos los límites de uso de la cuota “Consultas por día”.
Cómo resolver un error 403: Se superó el límite de tasa de usuarios
Un error userRateLimitExceeded
indica que se alcanzó el límite por usuario.
Puede ser un límite de la Consola de API de Google o un límite del backend de Drive. A continuación, se muestra la representación JSON del error:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "userRateLimitExceeded",
"message": "User Rate Limit Exceeded"
}
],
"code": 403,
"message": "User Rate Limit Exceeded"
}
}
Para solucionar este error, prueba una de las siguientes opciones:
- Aumentar la cuota por usuario en el proyecto de Google Cloud Para obtener más información, solicita un aumento de la cuota.
- Si un usuario realiza varias solicitudes en nombre de muchos usuarios de una cuenta de Google Workspace , considera usar una cuenta de servicio con delegación de todo el dominio mediante el parámetro
quotaUser
. - Usa la retirada exponencial para reintentar la solicitud.
Para obtener más información sobre los límites de la API de Drive, consulta Límites de uso.
Cómo resolver un error 403: Se superó el límite de frecuencia del proyecto
Un error rateLimitExceeded
indica que se alcanzó el límite de frecuencia del proyecto.
Este límite varía según el tipo de solicitudes. A continuación, se muestra la representación JSON de este error:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"message": "Rate Limit Exceeded",
"reason": "rateLimitExceeded",
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
Para solucionar este error, prueba una de las siguientes opciones:
- Aumentar la cuota por usuario en el proyecto de Google Cloud Para obtener más información, solicita un aumento de la cuota.
- Solicitudes por lotes para realizar menos llamadas a la API.
- Usa la retirada exponencial para reintentar la solicitud.
Cómo resolver un error 403: Se superó el límite de frecuencia de uso compartido
Se produce un error sharingRateLimitExceeded
cuando el usuario alcanza un límite de uso compartido. Este error suele estar vinculado con un límite de correos electrónicos. A continuación, se muestra la representación JSON de este error:
{
"error": {
"errors": [
{
"domain": "global",
"message": "Rate limit exceeded. User message: \"These item(s) could not be shared because a rate limit was exceeded: filename",
"reason": "sharingRateLimitExceeded",
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
Para corregir este error:
- No envíes correos electrónicos cuando compartas grandes cantidades de archivos.
- Si un usuario realiza varias solicitudes en nombre de muchos usuarios de una cuenta de Google Workspace , considera usar una cuenta de servicio con delegación de todo el dominio mediante el parámetro
quotaUser
.
Cómo resolver un error 403: Se superó la cuota de almacenamiento
Se produce un error storageQuotaExceeded
cuando el usuario alcanza su límite de almacenamiento. A continuación, se muestra la representación JSON del error:
{
"error": {
"errors": [
{
"domain": "global",
"message": "The user's Drive storage quota has been exceeded.",
"reason": "storageQuotaExceeded",
}
],
"code": 403,
"message": "The user's Drive storage quota has been exceeded."
}
}
Para corregir este error:
Revisa los límites de almacenamiento de tu cuenta de Drive. Para obtener más información, consulta Almacenamiento en Drive y límites de carga
-
o adquiere más almacenamiento en Google One.
Resolver un error 403: El usuario no otorgó a la app {appId} acceso {verb} al archivo {fileId}
Se produce un error appNotAuthorizedToFile
cuando tu app no está en la LCA para el archivo. Este error impide que el usuario abra el archivo con tu app. A continuación, se muestra una representación JSON del error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "appNotAuthorizedToFile",
"message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
}
],
"code": 403,
"message": "The user has not granted the app {appId} {verb} access to the file {fileId}."
}
}
Para solucionar este error, prueba una de las siguientes opciones:
- Abre el selector de Google Drive y pídele al usuario que abra el archivo.
- Indica al usuario que abra el archivo mediante el menú contextual Abrir con en la IU de Drive de tu app.
También puedes revisar el campo isAppAuthorized
de un archivo para comprobar si tu app creó o abrió el archivo.
Resuelva un error 403: El usuario no tiene permisos suficientes para el archivo {fileId}.
Un error insufficientFilePermissions
ocurre cuando el usuario no tiene acceso de escritura a un archivo y tu app intenta modificarlo. A continuación, se muestra la representación JSON del error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientFilePermissions",
"message": "The user does not have sufficient permissions for file {fileId}."
}
],
"code": 403,
"message": "The user does not have sufficient permissions for file {fileId}."
}
}
Para corregir este error, indícale al usuario que se comunique con el propietario del archivo y solicite acceso de edición. También puedes verificar los niveles de acceso de los usuarios en los metadatos que recupera files.get
y mostrar una IU de solo lectura cuando faltan permisos.
Resuelva un error 403: No se puede usar la app con el ID {appId} dentro del dominio del usuario autenticado.
Se produce un error domainPolicy
cuando la política para el dominio del usuario no permite que tu app acceda a Drive. A continuación, se muestra una representación JSON del error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "domainPolicy",
"message": "The domain administrators have disabled Drive apps."
}
],
"code": 403,
"message": "The domain administrators have disabled Drive apps."
}
}
Para corregir este error:
- Infórmale al usuario que el dominio no permite que tu app acceda a archivos de Drive.
- Indica al usuario que se comunique con el administrador del dominio a fin de solicitar acceso para tu app.
Resuelva un error 403: Se superó la cantidad de elementos en la carpeta.
Se produce un error numChildrenInNonRootLimitExceeded
cuando se excede el límite de carpetas secundarias (carpetas, archivos y accesos directos). Hay un límite de 500,000 elementos para las carpetas, los archivos y los accesos directos directamente en una carpeta. Los elementos anidados en subcarpetas no se descuentan de este límite de 500,000 elementos. Para obtener más información sobre los límites de las carpetas de Drive, consulta Límites de carpetas en Google Drive.
Resuelva un error 403: Se superó la cantidad de elementos que creó la cuenta
Se produce un error activeItemCreationLimitExceeded
cuando se excede el límite de elementos creados por esta cuenta, independientemente de si se enviaron a la papelera o no. Para el límite, se cuentan todos los tipos de elementos, incluidas las carpetas.
Resolver un error 404: No se encontró el archivo: {fileId}
El error notFound
se produce cuando el usuario no tiene acceso de lectura a un archivo o este no existe.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found {fileId}"
}
],
"code": 404,
"message": "File not found: {fileId}"
}
}
Para corregir este error:
- Informa al usuario que no tiene acceso de lectura al archivo o que el archivo no existe.
- Indica al usuario que se comunique con el propietario del archivo y le solicite permiso.
Cómo resolver un error 429: Demasiadas solicitudes
Se produce un error rateLimitExceeded
cuando el usuario envió demasiadas solicitudes en un período determinado.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "rateLimitExceeded",
"message": "Rate Limit Exceeded"
}
],
"code": 429,
"message": "Rate Limit Exceeded"
}
}
Para corregir este error, usa la retirada exponencial a fin de reintentar la solicitud.
Cómo resolver un error 5xx
Se produce un error 5xx cuando se produce un error inesperado durante el procesamiento de la solicitud. Esto puede deberse a varios problemas, como el tiempo de una solicitud que se superpone con otra o una solicitud de una acción no admitida, como cuando se intentan actualizar los permisos de una sola página de un sitio de Google en lugar del sitio en sí.
Para corregir este error, usa la retirada exponencial a fin de reintentar la solicitud. A continuación, se muestra una lista de errores 5xx:
- Error de backend 500
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout