Request Errors

Errores de solicitud

Un error de la API de Classroom puede contener un código de error para ayudarte a identificar la causa y manejar el error correctamente. Según el código, podrías volver a enviar la solicitud o indicar a los usuarios que realicen alguna acción.

En esta página, se detallan los posibles códigos de error, agrupados por código HTTP. Para obtener más información sobre la estructura del mensaje de error, consulta Estructura del mensaje de error.

En esta página, se detallan los posibles códigos de error, agrupados por código HTTP. Consulta la documentación de referencia para determinar qué métodos muestran un código de error específico.

HTTP 400: FAILED_PRECONDITION

Se muestra una FAILED_PRECONDITION cuando el usuario intenta realizar una acción que no se puede permitir, ya sea porque alcanzó un límite o un estado de la aplicación, como CourseNotModifiable. Para corregir una FAILED_PRECONDITION, indícale al usuario que realice alguna acción y, luego, vuelva a intentarlo. En algunos casos, también podrías usar extremos alternativos para corregir el estado en nombre del usuario.

PendingInvitationExists

PendingInvitationExists indica que alguien ya recibió una invitación para ser propietario del curso. Este error ocurre durante la transferencia de la propiedad del curso, cuando la transferencia se inició, pero el nuevo propietario aún no la acepta.

CourseMemberLimitReached

CourseMemberLimitReached indica que la acción que se intentó superaría la cantidad máxima permitida de miembros del curso. students.create() suele mostrar este código. Para obtener más información, consulta la sección "Límites de tamaño de las clases" del artículo Invitar a alumnos a una clase del Centro de ayuda.

Acción posible: Describe la causa del error y sugiere al usuario que quite los miembros innecesarios del curso.

CourseNotModifiable

CourseNotModifiable indica que el curso relevante se encuentra en un estado que no permite que se modifiquen sus propiedades (aparte del estado del curso).

Acción posible: Pídele al usuario que cambie el curso a un estado modificable. Para cambiar el estado, usa courses.patch(). El estado del curso se puede cambiar en una solicitud que cambia otras propiedades.

CourseTeacherLimitReached

CourseTeacherLimitReached indica que la acción solicitada superaría la cantidad máxima permitida de profesores del curso. Por lo general, teachers.create() muestra este código. Para obtener más información, consulta la sección “Limitaciones del tamaño de las clases” del artículo del Centro de ayuda Cómo agregar a un profesor adjunto a una clase.

Acción posible: Describe la causa del error y sugiere al usuario que quite los profesores innecesarios del curso. Si corresponde a tu app, puedes usar teachers.delete() para administrar las listas de profesores en nombre del usuario.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached indica que el usuario ya es miembro de la cantidad máxima permitida de grupos y no puede unirse a ningún curso. Por lo general, students.create() o teachers.create() muestran este código. Para obtener más información, consulta la sección "Limitaciones del tamaño de las clases" del artículo del Centro de ayuda Invitar a alumnos a una clase.

Acción posible: Describe la causa del error y sugiere al usuario que abandone todos los cursos en los que no participa. El usuario puede considerar crear una cuenta adicional si necesita participar en más cursos. Si corresponde para tu app, puedes usar students.create() o teachers.delete() para administrar listas en nombre del usuario.

AttachmentNotVisible

AttachmentNotVisible indica que uno o más de los archivos adjuntos especificados no son visibles para el usuario, no son del tipo solicitado o no existen. Por ejemplo, los elementos de Drive que no se hayan compartido con el usuario devolverán este error.

Acción posible: Describe la causa de la falla y sugiere al usuario que vuelva a verificar los identificadores que incluyeron, como los IDs de archivo de Drive. Además, asegúrate de que el usuario tenga los permisos adecuados para ver el archivo adjunto.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner indica que es posible que no se pueda quitar al propietario de la carpeta de Drive del curso.

Acción posible: Describe la causa del error y sugiere que el usuario transfiera la propiedad de la carpeta de Drive del curso a otro usuario y vuelva a intentarlo.

CannotRemoveCourseOwner

CannotRemoveCourseOwner indica que es posible que no se quite al propietario del curso.

Acción posible: Describe la causa del error y sugiere que no se elimine al propietario del curso. En la mayoría de los casos, el usuario intenta quitarse a sí mismo, lo que no está permitido.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete indica que es posible que no se quite al propietario del curso porque la transferencia de la propiedad de esta clase todavía está en curso.

Acción posible: Describe la causa de la falla y sugiere que el usuario espere unos minutos para que se complete la acción asíncrona de transferir la propiedad de la clase y, luego, vuelva a intentarlo.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner indica que no se puede quitar a un profesor de un curso sin propietario.

Acción posible: Describe la causa de la falla y sugiere que no quiten al profesor. En la mayoría de los casos, la cuenta de usuario del propietario del curso se borraba, lo que provocaba un estado del curso no válido.

InactiveCourseOwner

InactiveCourseOwner indica que no se permite la acción solicitada porque se borró la cuenta del propietario del curso. El administrador del propietario del curso debe restablecer su cuenta antes de realizar la acción solicitada.

Acción posible: Describe la causa del error y sugiere que el administrador restablezca la cuenta del propietario del curso antes de reintentar la operación.

IneligibleOwner

IneligibleOwner indica que no se puede agregar al usuario como propietario del curso porque no es un profesor adjunto.

Acción posible: Describe la causa de la falla. Si el usuario solicitante no es administrador, sugiere que primero le envíe una invitación para ser profesor del curso antes de actualizar el propietario. Si el usuario que realiza la solicitud es administrador, sugiere que primero lo agregue como profesor adjunto del curso.

UserCannotOwnCourse

UserCannotOwnCourse indica que no se puede agregar al usuario como propietario del curso.

Acción posible: Describe la causa del error y sugiere que no se pueda crear el curso con el usuario como propietario. Es posible que un usuario que no sea administrador vea este error si intenta crear un curso con otro usuario que no sea el propietario. Un administrador que realiza una solicitud de usuario puede ver este error si la cuenta de usuario especificada como propietario no existe o si el usuario no está en su dominio.

HTTP 429: RESOURCE_EXHAUSTED

Se muestra RESOURCE_EXHAUSTED cuando no se permite la acción solicitada porque se agotó algún recurso, como la cuota o la capacidad del servidor. Por lo general, estos tipos de errores de solicitud ocurren porque tu app produjo una carga excesiva.

Para evitar que se activen estos límites y aumentar la confiabilidad de tu aplicación, usa mecanismos de reintento. Entre los mecanismos de reintento válidos, se incluyen los siguientes:

  • Usa la retirada exponencial truncada para reintentar la solicitud y maximizar la capacidad de procesamiento de las solicitudes en entornos simultáneos.

  • Para evitar colisiones, considera una retirada exponencial truncada con jitter. La introducción del jitter puede ayudar a que tus solicitudes tengan éxito más rápido, ya que introduce un retraso aleatorio que distribuye los picos en las solicitudes.

Si tu aplicación muestra errores RESOURCE_EXHAUSTED debido a límites de cuota, envía un aumento de cuota. Para obtener más información, consulta el artículo del Centro de ayuda Supervisa cuotas de la API.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached indica que el usuario ya se unió a la cantidad máxima permitida de cursos en un día. Para obtener más información, consulta la sección "Invitaciones y tamaños de grupos" del artículo Información sobre las políticas y los límites de los grupos del Centro de ayuda.

Acción posible: Describe la causa del error y sugiere que el usuario espere un día antes de unirse al curso.

HTTP 500: INTERNAL

INTERNAL indica que se produjo un error inesperado mientras se procesaba la solicitud. Los errores de solicitud INTERNAL también se pueden resolver a menudo con la retirada exponencial para reintentar la solicitud. Si el error INTERNAL persiste, se puede informar presentando un error en la Herramienta de seguimiento de errores pública de la API de Classroom.