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 Fehlertypen 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 ein Limit oder einen Anwendungsstatus wie CourseNotModifiable erreicht hat. Um eine FAILED_PRECONDITION zu beheben, weisen Sie den Nutzer an, eine Aktion auszuführen, und versuchen Sie es dann noch einmal. In einigen Fällen können Sie auch alternative Endpunkte verwenden, um den Status im Namen des Nutzers zu korrigieren.

AttachmentNotVisible

AttachmentNotVisible gibt an, dass mindestens eine der angegebenen Anhänge entweder für den Nutzer nicht sichtbar ist, nicht dem angeforderten Typ entspricht oder nicht vorhanden ist. Dieser Fehler wird beispielsweise für Drive-Elemente zurückgegeben, die nicht für den Nutzer freigegeben wurden.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Nutzer die angegebenen Kennungen, z. B. Drive-Datei-IDs, noch einmal überprüft. Prüfen Sie außerdem, ob der Nutzer die erforderlichen Berechtigungen zum Aufrufen des Anhangs hat.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner gibt an, dass der Inhaber des Kurs-Drive-Ordners nicht entfernt werden kann.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Nutzer die Eigentümerschaft des Kurs-Drive-Ordners auf einen anderen Nutzer überträgt und es noch einmal versucht.

CannotRemoveCourseOwner

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

Mögliche Aktion: Beschreibe die Ursache des Fehlers und weise darauf hin, 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 Kurseigentümer möglicherweise nicht entfernt werden kann, da die Übertragung der Eigentümerschaft für diesen Kurs noch läuft.

Mögliche Aktion: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Nutzer einige Momente wartet, bis die asynchrone Aktion zur Übertragung der Eigentümerschaft des Kurses abgeschlossen ist, und es dann noch einmal versucht.

CannotRemoveTeacherWithNoCourseOwner

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

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

CourseMemberLimitReached

CourseMemberLimitReached gibt an, dass die versuchte Aktion die maximal zulässige Anzahl von Kursmitgliedern überschreiten würde. Dieser Code wird in der Regel von students.create() zurückgegeben. Weitere Informationen finden Sie im Hilfeartikel Schüler oder Studenten zu einem Kurs einladen im Abschnitt „Kursgrößenbeschränkungen“.

Mögliche Aktion: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Nutzer unnötige Kursmitglieder entfernt.

CourseNotModifiable

CourseNotModifiable gibt an, dass sich der entsprechende Kurs in einem Status befindet, der keine Änderungen an den Eigenschaften zulässt (mit Ausnahme des Kursstatus selbst).

Mögliche Aktion: Fordern Sie den Nutzer auf, 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 angeforderte Aktion die maximal zulässige Anzahl von Kursleitern überschreiten würde. Dieser Code wird in der Regel von der Methode teachers.create() zurückgegeben. Weitere Informationen finden Sie im Hilfeartikel Kursen zusätzliche Lehrkräfte hinzufügen im Abschnitt „Beschränkungen der Kursgröße“.

Mögliche Aktion: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Nutzer unnötige Kurslehrer entfernt. Falls zutreffend, können Sie die Methode teachers.delete() verwenden, um Lehrerlisten im Namen des Nutzers zu verwalten.

CourseTitleCannotContainUrl

CourseTitleCannotContainUrl gibt an, dass die angeforderte Aktion nicht zulässig ist, da dadurch eine URL in den Kurstitel eingefügt würde. URL-Muster werden in Kurstiteln nicht unterstützt.

Mögliche Aktion: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Nutzer das URL-Muster aus dem Feld title entfernt. URLs sind im Feld description zulässig.

CourseTopicLimitReached

CourseTopicLimitReached gibt an, dass die angeforderte Aktion die maximal zulässige Anzahl von Themen in einem Kurs überschreiten würde. Dieser Code wird in der Regel von der Methode courses.topics.create() zurückgegeben.

Mögliche Aktion: Beschreibe die Ursache des Fehlers und schlage vor, dass der Nutzer unnötige Themen entfernt. Falls zutreffend, können Sie die Methode courses.topics.delete() verwenden, um Themen im Namen des Nutzers zu verwalten.

InactiveCourseOwner

InactiveCourseOwner gibt an, dass die angeforderte Aktion nicht zulässig ist, da das Konto des Kurseigentümers gelöscht wurde. Der Administrator des Kursinhabers muss das Konto des Kursinhabers wiederherstellen, bevor die angeforderte Aktion ausgeführt werden kann.

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

IneligibleOwner

IneligibleOwner gibt an, dass der Nutzer nicht als Eigentümer des Kurses hinzugefügt werden kann, weil er kein Co-Lehrer ist.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers. Wenn der anfragende Nutzer kein Administrator ist, schlagen Sie vor, dass er dem Nutzer zuerst eine Einladung sendet, Lehrer im Kurs zu werden, bevor er den Eigentümer aktualisiert. Wenn der anfragende Nutzer ein Administrator ist, schlagen Sie vor, dass er den Nutzer zuerst als Co-Lehrer des Kurses hinzufügt.

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, aber noch nicht vom neuen Inhaber akzeptiert wurde.

UserCannotOwnCourse

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

Mögliche Aktion: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Kurs nicht mit dem Nutzer als Kursinhaber erstellt werden kann. Ein Nutzer, der kein Administrator ist, sieht diesen Fehler möglicherweise, wenn er versucht, einen Kurs mit einem anderen Nutzer als sich selbst als Inhaber zu erstellen. Ein Administrator, der einen Nutzer anfordert, sieht diesen Fehler möglicherweise, wenn das als Inhaber angegebene Nutzerkonto nicht vorhanden ist oder der Nutzer nicht in seiner Domain ist.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached bedeutet, dass der Nutzer bereits Mitglied der maximal zulässigen Anzahl von Gruppen ist und keinen Kursen beitreten 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 der Kursgröße“.

Mögliche Aktion: Beschreiben Sie die Ursache des Fehlers und schlagen Sie vor, dass der Nutzer alle Kurse verlässt, an denen er nicht teilnimmt. Wenn der Nutzer an weiteren Kursen teilnehmen möchte, kann er ein zusätzliches Konto erstellen. Falls zutreffend, können Sie mit students.create() oder teachers.delete() im Namen des Nutzers Kurse 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 Meldung, die mit dem Fehler einhergeht, enthält eine Fehlermeldung, die Ihnen hilft, die Ursache zu ermitteln und Nutzer zu den entsprechenden Maßnahmen zu leiten.

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

CannotDirectAddUser

CannotDirectAddUser gibt an, dass ein Nutzer nicht direkt dem Kurs hinzugefügt werden kann. Dieser Code wird angezeigt, wenn ein Domainadministrator versucht, einen Nutzer zu einem Kurs 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 vor, dass der Domainadministrator prüft, ob das Nutzerkonto vorhanden ist und zur Domain des Kursadministrators gehört.

ClassroomApiDisabled

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

Mögliche Maßnahme: Verweisen Sie den Nutzer auf die 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: Verweisen Sie den Nutzer auf die Anleitung zum Aktivieren des Classroom-Zugriffs. Möglicherweise verwendet der Nutzer auch das falsche Konto. In diesem Fall können Sie ihm einen Link zum Verwenden mehrerer Konten senden, damit er das richtige Konto auswählen kann.

ExpiredAddOnToken

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

Mögliche Aktion: Fordern Sie den Nutzer auf, die Seite zu aktualisieren oder sich noch einmal im Add-on anzumelden, damit Sie den neuen addOnToken-Abfrageparameter aus der Anfrage-URL abrufen können.

InvalidAddOnToken

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

Mögliche Aktion: Dieser Fehler kann auftreten, wenn sich der Nutzer mit einem anderen Konto als dem Konto 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 mit der Anfrage versucht wurde, eine Ressource zu ändern, die mit einem anderen Developer Console-Projekt verknüpft ist.

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

UserIneligibleToUpdateGradingPeriodSettings

UserIneligibleToUpdateGradingPeriodSettings gibt an, dass mit der Anfrage versucht wurde, die Einstellungen für den Notenzeitraum in einem Kurs zu ändern, in dem der anfragende Nutzer oder der Kursinhaber nicht die entsprechende Google Workspace for Education-Lizenz hat oder der anfragende Nutzer kein Kurslehrer oder Domainadministrator ist.

Mögliche Maßnahme: Geben Sie an, dass Ihre Anwendung die beabsichtigte Anfrage zum Aktualisieren der Einstellungen für den Bewertungszeitraum aufgrund des Lizenzierungs- oder Kursrollenstatus nicht stellen kann. Lizenzen können in der Google Admin-Konsole zugewiesen werden.

HTTP 429: RESOURCE_EXHAUSTED

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

Um diese Limits nicht zu überschreiten und die Zuverlässigkeit Ihrer Anwendung zu erhöhen, sollten Sie Wiederholungsmechanismen verwenden. Gültige Wiederholungsmechanismen sind:

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

  • Um Kollisionen zu vermeiden, sollten Sie einen abgeschnittenen exponentiellen Backoff mit Jitter in Betracht ziehen. Durch das Einfügen 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 API-Kontingente im Blick behalten.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached bedeutet, dass der Nutzer bereits die maximal zulässige Anzahl an Kursen an einem Tag beigetreten ist. Weitere Informationen finden Sie im Abschnitt „Gruppeneinladungen und -größe“ des Hilfeartikels Gruppenrichtlinien und -beschränkungen.

Mögliche Aktion: Beschreibe die Ursache des Fehlers und schlage vor, dass der Nutzer einen Tag wartet, bevor er dem Kurs beitritt.

HTTP 500: INTERNAL

INTERNAL weist darauf hin, dass bei der Verarbeitung der Anfrage ein unerwarteter Fehler aufgetreten ist. INTERNAL-Anfragefehler lassen sich oft auch beheben, indem Sie die Anfrage mit exponentiellem Backoff wiederholen. Wenn der INTERNAL-Fehler weiterhin auftritt, können Sie ihn melden, indem Sie im öffentlichen Issue Tracker der Classroom API einen Fehlerbericht einreichen.