Request Errors

Erreurs de requête

Une erreur de l'API Classroom peut contenir un code d'erreur pour vous aider à identifier la cause et à gérer correctement l'erreur. Selon le code, vous pouvez relancer la requête ou demander aux utilisateurs d'effectuer certaines actions.

Cette page présente les codes d'erreur possibles, regroupés par code HTTP. Pour en savoir plus sur la structure du message d'erreur, consultez la section Structure des messages d'erreur.

Cette page présente les codes d'erreur possibles, regroupés par code HTTP. Consultez la documentation de référence pour déterminer les méthodes qui renvoient un code d'erreur particulier.

HTTP 400: FAILED_PRECONDITION

Un FAILED_PRECONDITION est renvoyé lorsque l'utilisateur tente une action qui ne peut pas être autorisée, soit parce qu'il a atteint une limite, soit parce qu'il a atteint un état de l'application, comme CourseNotModifiable. Pour corriger une erreur FAILED_PRECONDITION, demandez à l'utilisateur d'effectuer une action, puis réessayez. Dans certains cas, vous pouvez également utiliser d'autres points de terminaison pour corriger l'état au nom de l'utilisateur.

PendingInvitationExists

PendingInvitationExists indique qu'un utilisateur a déjà été invité à devenir propriétaire du cours. Cette erreur se produit lors du transfert de propriété d'un cours lorsqu'un transfert a commencé, mais n'a pas encore été accepté par le nouveau propriétaire.

CourseMemberLimitReached

CourseMemberLimitReached indique que l'action que vous tentez d'effectuer entraînerait le dépassement du nombre maximal autorisé de membres du cours. Ce code est généralement renvoyé par students.create(). Pour en savoir plus, consultez la section "Limites de taille des cours" de l'article du centre d'aide Inviter des élèves à un cours.

Action possible: décrivez la cause de l'échec et suggérez à l'utilisateur de supprimer les membres inutiles du cours.

CourseNotModifiable

CourseNotModifiable indique que l'état du cours concerné ne permet pas de modifier ses propriétés (autres que l'état du cours lui-même).

Action possible: invitez l'utilisateur à faire passer le cours à un état modifiable. Pour modifier l'état, utilisez courses.patch(). L'état du cours peut être modifié dans une requête qui modifie d'autres propriétés.

CourseTeacherLimitReached

CourseTeacherLimitReached indique que l'action demandée dépasserait le nombre maximal autorisé d'enseignants du cours. Ce code est généralement renvoyé par teachers.create(). Pour en savoir plus, consultez la section "Limites de taille des cours" de l'article du centre d'aide Ajouter un co-enseignant à un cours.

Action possible: décrivez la cause de l'échec et suggérez à l'utilisateur de supprimer les enseignants de cours inutiles. Le cas échéant, vous pouvez gérer les listes d'enseignants au nom de l'utilisateur à l'aide de la méthode teachers.delete().

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached indique que l'utilisateur est déjà membre du nombre maximal de groupes autorisé et qu'il ne peut participer à aucun cours. Ce code est généralement renvoyé par students.create() ou teachers.create(). Pour plus d'informations, consultez la section "Limites liées au nombre de classes" de l'article du centre d'aide Inviter des élèves à un cours.

Action possible: décrivez la cause de l'échec et suggérez à l'utilisateur de quitter les cours auxquels il ne participe pas. L'utilisateur peut envisager de créer un compte supplémentaire s'il doit participer à d'autres cours. Le cas échéant, vous pouvez utiliser students.create() ou teachers.delete() pour gérer les listes d'élèves au nom de l'utilisateur.

AttachmentNotVisible

AttachmentNotVisible indique qu'une ou plusieurs des pièces jointes spécifiées ne sont pas visibles par l'utilisateur, ne sont pas du type demandé ou n'existent pas. Par exemple, les éléments Drive qui n'ont pas été partagés avec l'utilisateur renvoyaient cette erreur.

Action possible: décrivez la cause de l'échec et suggérez à l'utilisateur de revérifier les identifiants, tels que les ID de fichier Drive. Assurez-vous également que l'utilisateur dispose des autorisations appropriées pour afficher la pièce jointe.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner indique que le propriétaire du dossier Drive du cours n'a peut-être pas été supprimé.

Action possible: Décrivez la cause de l'échec et suggérez à l'utilisateur de transférer la propriété du dossier Drive du cours à un autre utilisateur, puis de réessayer.

CannotRemoveCourseOwner

CannotRemoveCourseOwner indique que le propriétaire du cours ne peut pas être supprimé.

Action possible: décrivez la cause de l'échec et suggérez que le propriétaire du cours ne soit pas supprimé. Dans la plupart des cas, l'utilisateur essaie de se supprimer, ce qui n'est pas autorisé.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete indique que le propriétaire du cours n'a peut-être pas été supprimé, car le transfert de propriété de ce cours est toujours en cours.

Action possible: décrivez la cause de l'échec et suggérez à l'utilisateur d'attendre quelques instants que l'action asynchrone visant à transférer la propriété de la classe soit terminée, puis de réessayer.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner indique qu'un enseignant ne peut pas être retiré d'un cours sans propriétaire.

Action possible: décrivez la cause de l'échec et suggérez que l'enseignant ne soit pas supprimé. Dans la plupart des cas, le compte utilisateur du propriétaire du cours était supprimé, ce qui rendait le cours non valide.

InactiveCourseOwner

InactiveCourseOwner indique que l'action demandée n'est pas autorisée, car le compte du propriétaire du cours a été supprimé. L'administrateur du propriétaire du cours doit restaurer son compte avant d'effectuer l'action demandée.

Action possible: décrivez la cause de l'échec et suggérez à l'administrateur de restaurer le compte du propriétaire du cours avant de relancer l'opération.

IneligibleOwner

IneligibleOwner indique que l'utilisateur ne peut pas être ajouté en tant que propriétaire du cours, car il n'est pas un co-enseignant.

Action possible: décrivez la cause de l'échec. Si l'utilisateur à l'origine de la demande n'est pas administrateur, suggérez-lui de lui envoyer d'abord une invitation à devenir enseignant du cours avant de modifier le propriétaire. Si l'utilisateur à l'origine de la demande est un administrateur, suggérez-lui de l'ajouter d'abord en tant que co-enseignant du cours.

UserCannotOwnCourse

UserCannotOwnCourse indique que l'utilisateur ne peut pas être ajouté en tant que propriétaire du cours.

Action possible: décrivez la cause de l'échec et suggérez que le cours ne peut pas être créé avec l'utilisateur comme propriétaire du cours. Un utilisateur qui n'est pas un administrateur peut voir cette erreur s'il tente de créer un cours avec un utilisateur qui n'en est pas le propriétaire. Un administrateur à l'origine de la demande peut voir cette erreur si le compte utilisateur spécifié comme propriétaire n'existe pas ou si l'utilisateur ne fait pas partie de son domaine.

HTTP 429: RESOURCE_EXHAUSTED

Le RESOURCE_EXHAUSTED est renvoyé lorsque l'action demandée n'est pas autorisée, car certaines ressources, telles que le quota ou la capacité du serveur, sont épuisées. Ces types d'erreurs de requête se produisent généralement lorsque votre application a généré une charge excessive.

Pour éviter de déclencher ces limites et améliorer la fiabilité de votre application, utilisez des mécanismes de nouvelle tentative. Les mécanismes de nouvelle tentative valides sont les suivants:

  • Utilisez un intervalle exponentiel entre les tentatives tronqué pour relancer la requête et maximiser le débit des requêtes dans les environnements simultanés.

  • Pour éviter les conflits, envisagez un intervalle exponentiel entre les tentatives tronqué avec la gigue. L'introduction de la gigue peut aider vos requêtes à réussir plus rapidement en introduisant un délai aléatoire qui répartit les pics de requêtes.

Si votre application renvoie des erreurs RESOURCE_EXHAUSTED en raison de limites de quota, demandez une augmentation de quota. Pour en savoir plus, consultez l'article Contrôler les quotas d'API dans le centre d'aide.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached indique que l'utilisateur a déjà rejoint le nombre maximal de cours autorisé sur une journée. Pour en savoir plus, consultez la section "Invitations et taille des groupes" de l'article du centre d'aide Comprendre les règles et les limites applicables aux groupes.

Action possible: décrivez la cause de l'échec et suggérez à l'utilisateur d'attendre un jour avant de rejoindre le cours.

HTTP 500: INTERNAL

INTERNAL indique qu'une erreur inattendue s'est produite lors du traitement de la requête. Les erreurs de requête INTERNAL peuvent aussi souvent être résolues en utilisant un intervalle exponentiel entre les tentatives pour relancer la requête. Si une erreur INTERNAL persiste, vous pouvez la signaler en signalant le bug dans l'outil public de suivi des problèmes de l'API Classroom.