Häufige Fehlermeldungen der Google Classroom API

Auf dieser Seite werden einige häufige Fehlermeldungen, Probleme und mögliche Maßnahmen für die folgenden Arten von Fehlern bei der Google Classroom API beschrieben:

HTTP 400: FAILED_PRECONDITION

Ein FAILED_PRECONDITION wird zurückgegeben, wenn der Nutzer eine Aktion ausführt, die nicht zulässig ist, entweder weil er eine Grenze überschritten hat oder sich in einem bestimmten Anwendungsstatus befindet, z. B. CourseNotModifiable. Bitte den Nutzer, eine bestimmte Aktion auszuführen und es dann noch einmal zu versuchen.FAILED_PRECONDITION In einigen Fällen kannst du auch alternative Endpunkte verwenden, um den Status im Namen des Nutzers zu korrigieren.

AttachmentNotVisible

AttachmentNotVisible gibt an, dass mindestens einer der angegebenen Anhänge entweder für den Nutzer nicht sichtbar ist, nicht dem angeforderten Typ entspricht oder nicht vorhanden ist. Beispielsweise wird dieser Fehler für Drive-Elemente ausgegeben, die nicht für den Nutzer freigegeben wurden.

Mögliche Maßnahme: beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Nutzer vor, die von ihm angegebenen IDs wie Drive-Datei-IDs noch einmal zu prüfen. Außerdem muss der Nutzer die entsprechenden Berechtigungen zum Ansehen des Anhangs haben.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner gibt an, dass der Inhaber des Drive-Ordners des Kurses möglicherweise nicht entfernt werden kann.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Nutzer vor, die Inhaberschaft des Drive-Ordners des Kurses auf einen anderen Nutzer zu übertragen und es noch einmal zu versuchen.

CannotRemoveCourseOwner

CannotRemoveCourseOwner gibt an, dass der Kursinhaber nicht entfernt werden kann.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Kursinhaber möglicherweise nicht entfernt werden kann. In den meisten Fällen versucht der Nutzer, sich selbst zu entfernen, was nicht zulässig ist.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete bedeutet, dass der Kursinhaber möglicherweise nicht entfernt werden kann, da die Übertragung der Inhaberschaft für diesen Kurs noch nicht abgeschlossen ist.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Nutzer vor, einige Minuten zu warten, bis die asynchrone Übertragung der Inhaberschaft des Kurses abgeschlossen ist, und es dann noch einmal zu versuchen.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner gibt an, dass eine Lehrkraft nicht aus einem Kurs entfernt werden kann, der keinen Inhaber hat.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass die Lehrkraft möglicherweise nicht entfernt werden sollte. In den meisten Fällen wurde das Nutzerkonto des Kursinhabers gelöscht, was zu einem ungültigen Kursstatus führte.

CourseMemberLimitReached

CourseMemberLimitReached gibt an, dass die Anzahl der Teilnehmer mit der geplanten Aktion die maximal zulässige Teilnehmerzahl für den Kurs überschreiten würde. Dieser Code wird in der Regel vom students.create() zurückgegeben. Weitere Informationen finden Sie im Hilfeartikel Schüler oder Studenten zu einem Kurs einladen im Abschnitt „Größe von Kursen“.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Nutzer vor, nicht mehr benötigte Kursmitglieder zu entfernen.

CourseNotModifiable

CourseNotModifiable gibt an, dass der entsprechende Kurs sich in einem Status befindet, der keine Änderungen an den Eigenschaften zulässt (außer dem Kursstatus selbst).

Mögliche Aktion: Bitten Sie den Nutzer, den Kurs in einen änderbaren Kursstatus zu ändern. Verwenden Sie courses.patch(), um den Status zu ändern. Der Kursstatus kann in einer Anfrage geändert werden, in der auch andere Eigenschaften geändert werden.

CourseTeacherLimitReached

CourseTeacherLimitReached gibt an, dass die Anzahl der Lehrkräfte, die mit der angeforderten Aktion hinzugefügt werden sollen, die maximal zulässige Anzahl überschreitet. Dieser Code wird in der Regel vom teachers.create() zurückgegeben. Weitere Informationen finden Sie im Hilfeartikel Kursen zusätzliche Lehrkräfte hinzufügen im Abschnitt „Einschränkungen bei der Kursgröße“.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Nutzer vor, nicht benötigte Lehrkräfte zu entfernen. Wenn für Ihre App zutreffend, können Sie mit teachers.delete() die Lehrkräftelisten im Namen des Nutzers verwalten.

InactiveCourseOwner

InactiveCourseOwner gibt an, dass die angeforderte Aktion nicht zulässig ist, da das Konto des Kursinhabers gelöscht wurde. Der Administrator des Kursinhabers muss das Konto des Kursinhabers wiederherstellen, bevor er die gewünschte Aktion ausführen kann.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Administrator vor, das Konto des Kursinhabers wiederherzustellen, bevor er den Vorgang noch einmal versucht.

IneligibleOwner

IneligibleOwner bedeutet, dass der Nutzer nicht als Inhaber des Kurses hinzugefügt werden kann, da er kein Co-Leiter ist.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers. Wenn der anfragende Nutzer kein Administrator ist, schlage ihm vor, dem Nutzer zuerst eine Einladung zum Lehren im Kurs zu senden, bevor er den Eigentümer aktualisiert. Wenn der anfragende Nutzer ein Administrator ist, schlage ihm vor, den Nutzer zuerst als Co-Lehrkraft des Kurses hinzuzufügen.

PendingInvitationExists

PendingInvitationExists bedeutet, dass bereits jemand eingeladen wurde, die Inhaberschaft für den Kurs zu übernehmen. Dieser Fehler tritt bei der Übertragung der Kursinhaberschaft auf, wenn eine Übertragung bereits gestartet wurde, aber noch nicht vom neuen Inhaber akzeptiert wurde.

UserCannotOwnCourse

UserCannotOwnCourse bedeutet, dass der Nutzer nicht als Inhaber des Kurses hinzugefügt werden kann.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Kurs nicht mit dem Nutzer als Kursinhaber erstellt werden kann. Dieser Fehler kann Nutzern angezeigt werden, die keinen Administratorstatus haben und versuchen, einen Kurs mit einem anderen Nutzer als Inhaber zu erstellen. Ein Administrator, der einen Nutzer anfordert, kann diesen Fehler sehen, wenn das als Inhaber angegebene Nutzerkonto nicht existiert oder der Nutzer nicht zu seiner Domain gehört.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached bedeutet, dass der Nutzer bereits Mitglied der maximal zulässigen Anzahl von Gruppen ist und sich keinem Kurs anschließen kann. Dieser Code wird in der Regel von students.create() oder teachers.create() zurückgegeben. Weitere Informationen finden Sie im Hilfeartikel Schüler oder Studenten zu einem Kurs einladen im Abschnitt „Einschränkungen bei der Kursgröße“.

Mögliche Maßnahme: beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Nutzer vor, alle Kurse zu verlassen, an denen er nicht teilnimmt. Der Nutzer kann ein zusätzliches Konto erstellen, wenn er an weiteren Kursen teilnehmen möchte. Wenn für Ihre App zutreffend, können Sie students.create() oder teachers.delete() verwenden, um Kader im Namen des Nutzers zu verwalten.

HTTP 403: PERMISSION_DENIED

Alle Classroom API-Methoden können den Fehler PERMISSION_DENIED (HTTP 403) zurückgeben, wenn ein Endnutzer die Voraussetzungen für den Zugriff nicht erfüllt. Die zugehörige Meldung enthält eine Fehlermeldung, anhand derer Sie die Ursache ermitteln und Nutzer auffordern können, die entsprechenden Maßnahmen zu ergreifen.

In den folgenden Abschnitten werden häufige Fehlermeldungen der Classroom API beschrieben.

CannotDirectAddUser

CannotDirectAddUser gibt an, dass ein Nutzer dem Kurs nicht direkt hinzugefügt werden kann. Dieser Code wird angezeigt, wenn ein Domainadministrator versucht, einem Kurs einen Nutzer hinzuzufügen, der entweder keine E-Mail-Adresse hat oder nicht zur Domain gehört.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Domainadministrator vor, zu prüfen, ob das Nutzerkonto vorhanden ist und sich in der Domain des Kursadministrators befindet.

ClassroomApiDisabled

ClassroomApiDisabled gibt an, dass der anfragende Nutzer keinen Zugriff auf die Classroom API hat.

Mögliche Maßnahme: Leiten Sie den Nutzer zu einer Anleitung zum Aktivieren des Zugriffs auf Classroom-Daten. Sehen Sie sich auch ClassroomDisabled an, da der Nutzer möglicherweise das falsche Konto verwendet.

ClassroomDisabled

ClassroomDisabled gibt an, dass der anfragende Nutzer keinen Zugriff auf Classroom hat.

Mögliche Maßnahme: Leiten Sie den Nutzer zu einer Anleitung zum Aktivieren des Zugriffs auf Classroom. Möglicherweise verwendet der Nutzer auch das falsche Konto. Sie können daher auch einen Link zur Verwendung mehrerer Konten angeben, damit der Nutzer das richtige Konto auswählen kann.

ExpiredAddOnToken

ExpiredAddOnToken gibt an, dass das Add-on-Token, das für API-Aufrufe verwendet wird, abgelaufen ist.

Mögliche Aktion: Bitte den Nutzer, die Seite zu aktualisieren oder sich noch einmal im Add-on anzumelden, damit du den neuen addOnToken-Abfrageparameter aus der Anfrage-URL abrufen kannst.

InvalidAddOnToken

InvalidAddOnToken gibt an, dass das in einer Anfrage übergebene Add-on-Token nicht berechtigt ist, einen Add-on-Anhang für die Aufgabe zu erstellen.

Mögliche Maßnahme: Dieser Fehler kann auftreten, wenn sich der Nutzer mit einem anderen Konto als dem in Classroom im Add-on anmeldet. Bitten Sie den Nutzer, sich entweder von allen anderen Konten im Browser abzumelden oder Classroom in einem Inkognitofenster in Chrome zu öffnen.

ProjectPermissionDenied

ProjectPermissionDenied gibt an, dass bei der Anfrage versucht wurde, eine Ressource zu ändern, die mit einem anderen Entwicklerkonsolenprojekt verknüpft ist.

Mögliche Maßnahme: Geben Sie an, dass Ihre Anwendung die beabsichtigte Anfrage nicht stellen kann. Sie kann nur über das Entwicklerkonsolenprojekt der OAuth-Client-ID erfolgen, mit der die Ressource erstellt wurde.

UserIneligibleToUpdateGradingPeriodSettings

UserIneligibleToUpdateGradingPeriodSettings gibt an, dass bei der Anfrage versucht wurde, die Einstellungen für die Benotungszeiträume in einem Kurs zu ändern, in dem der anfragende Nutzer oder der Kursinhaber nicht über die entsprechende Google Workspace for Education-Lizenz verfügt.

Mögliche Maßnahme: Geben Sie an, dass Ihre Anwendung aufgrund des Lizenzierungsstatus des anfragenden Nutzers oder des Inhabers des Kurses die beabsichtigte Anfrage zur Aktualisierung der Einstellungen für die Benotungszeiträume nicht stellen kann. Lizenzen können in der Admin-Konsole zugewiesen werden.

HTTP 429: RESOURCE_EXHAUSTED

Der Fehler RESOURCE_EXHAUSTED wird zurückgegeben, wenn die angeforderte Aktion nicht zulässig ist, weil eine Ressource wie das Kontingent oder die Serverkapazität aufgebraucht ist. Diese Arten von Fehlern treten in der Regel auf, wenn Ihre App eine übermäßige Auslastung verursacht hat.

Verwenden Sie Wiederholungsmechanismen, um diese Limits nicht zu überschreiten und die Zuverlässigkeit Ihrer Anwendung zu erhöhen. Gültige Wiederholungsmechanismen:

  • Verwenden Sie den abgeschnittenen exponentiellen Backoff, um die Anfrage zu wiederholen und den Durchsatz von Anfragen in Umgebungen mit Gleichzeitigkeit zu maximieren.

  • Um Kollisionen zu vermeiden, sollten Sie einen abgeschnittenen exponentiellen Backoff mit Jitter verwenden. Durch die Einführung von Jitter können Ihre Anfragen schneller erfolgreich sein, da eine zufällige Verzögerung eingeführt wird, die Spitzen bei Anfragen verteilt.

Wenn Ihre Anwendung aufgrund von Kontingentbeschränkungen RESOURCE_EXHAUSTED-Fehler zurückgibt, beantragen Sie eine Kontingenterhöhung. Weitere Informationen finden Sie im Hilfeartikel Monitor API-Kontingente.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached bedeutet, dass der Nutzer bereits der maximal zulässigen Anzahl von Kursen pro Tag beigetreten ist. Weitere Informationen finden Sie im Hilfeartikel Gruppenrichtlinien und -beschränkungen im Abschnitt „Gruppeneinladungen und -größe“.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie dem Nutzer vor, einen Tag zu warten, bevor er sich für den Kurs registriert.

HTTP 500: INTERNAL

INTERNAL bedeutet, dass bei der Verarbeitung der Anfrage ein unerwarteter Fehler aufgetreten ist. INTERNAL-Anfragefehler können oft auch durch Verwendung eines exponentiellen Backoffs beim Wiederholungsversuch der Anfrage behoben werden. Wenn ein INTERNAL-Fehler weiterhin auftritt, können Sie ihn im öffentlichen Issue Tracker der Classroom API melden.