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-Fehler wird zurückgegeben, wenn der Nutzer versucht, eine Aktion auszuführen, die nicht zulässig ist. Das kann daran liegen, dass der Nutzer ein Limit erreicht hat oder ein Anwendungsstatus wie CourseNotModifiable vorliegt. Um einen FAILED_PRECONDITION-Fehler zu beheben, fordern Sie den Nutzer auf, eine bestimmte 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 eine oder mehrere der angegebenen Anhänge entweder für den Nutzer nicht sichtbar sind, nicht den angeforderten Typ haben oder nicht vorhanden sind. 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 empfehlen Sie dem Nutzer, die von ihm angegebenen IDs noch einmal zu überprüfen, z. B. Drive-Datei-IDs. Prüfen Sie außerdem, ob der Nutzer die richtigen Berechtigungen zum Ansehen des Anhangs hat.

CannotRemoveCourseFolderOwner

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

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, 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 empfehlen Sie dem Nutzer, dass der Kurs inhaber nicht entfernt werden kann. In den meisten Fällen versucht der Nutzer, sich selbst zu entfernen, was nicht zulässig ist.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete gibt an, dass der Kursinhaber nicht entfernt werden kann, weil die Übertragung der Inhaberschaft für diesen Kurs noch nicht abgeschlossen ist.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, einige Augenblicke zu warten, bis die asynchrone Aktion zur Ü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 ohne Inhaber entfernt werden kann.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, dass die Lehrkraft nicht entfernt werden kann. In den meisten Fällen wurde das Nutzerkonto des Kursinhabers gelöscht, was zu einem ungültigen Kursstatus geführt hat.

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 der students.create() zurückgegeben. Weitere Informationen finden Sie im Hilfeartikel Schüler oder Studenten zum Kurs einladen im Abschnitt zu den Beschränkungen der Kursgröße.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, unnötige Kursmitglieder zu entfernen.

CourseNotModifiable

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

Mögliche Maßnahme: Fordern Sie den Nutzer auf, den Kurs in einen änderbaren Kurs status 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 Kurslehrkräften überschreiten würde. Dieser Code wird in der Regel von der teachers.create() Methode zurückgegeben. Weitere Informationen finden Sie im Hilfeartikel Kursen zusätzliche Lehrkräfte hinzufügen im Abschnitt zu den "Beschränkungen der Kursgröße" .

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, unnötige Kurslehrkräfte zu entfernen. Wenn das für Ihre App zutrifft, können Sie die teachers.delete() Methode verwenden, um die Lehrkräfte im Namen des Nutzers zu verwalten.

CourseTitleCannotContainUrl

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

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, das URL-Muster aus dem title Feld zu entfernen. 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 courses.topics.create() Methode zurückgegeben.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, unnötige Themen zu entfernen. Wenn das für Ihre App zutrifft, können Sie die courses.topics.delete() Methode verwenden, um Themen im Namen des Nutzers zu verwalten.

EmptyAssignees

EmptyAssignees gibt an, dass durch die angeforderte Aktion alle zugewiesenen Personen aus der entsprechenden Kursarbeit entfernt würden. Kursarbeiten ohne zugewiesene Personen werden nicht unterstützt.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Kurs inhaber, dass er nicht alle zugewiesenen Personen entfernen kann.

InactiveCourseOwner

InactiveCourseOwner gibt an, dass die angeforderte Aktion nicht zulässig ist, weil das Konto des Kursinhabers 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 empfehlen Sie dem Administrator, das Konto des Kursinhabers wiederherzustellen, bevor er die Aktion noch einmal versucht.

IneligibleOwner

IneligibleOwner gibt an, dass der Nutzer nicht als Inhaber des Kurses hinzugefügt werden kann, weil er keine zusätzliche Lehrkraft ist.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers. Wenn der anfragende Nutzer kein Administrator ist, empfehlen Sie ihm, dem Nutzer zuerst eine Einladung zu senden, um ihn als Lehrkraft zum Kurs hinzuzufügen, bevor er den Inhaber aktualisiert. Wenn der anfragende Nutzer ein Administrator ist, empfehlen Sie ihm, den Nutzer zuerst als zusätzliche Lehrkraft zum Kurs hinzuzufügen.

ListCoursesStudentAndTeacherFilter

ListCoursesStudentAndTeacherFilter tritt auf, wenn eine courses.list()-Anfrage mit sowohl ausgefüllten Feldern teacherId als auch studentId gestellt wird. In einer einzelnen Anfrage kann nur eines dieser Felder festgelegt werden.

Sie können trotzdem eine Liste von Kursen mit bestimmten Schülern/Studenten und Lehrkräften abrufen, indem Sie zwei separate Anfragen stellen. Rufen Sie zuerst die Kurse der Lehrkraft ab, indem Sie eine courses.list()-Anfrage mit dem ausgefüllten Feld teacherId stellen. Stellen Sie dann eine weitere courses.list()-Anfrage mit dem ausgefüllten Feld studentId. Berechnen Sie die Schnittmenge der Ergebnisse, um die Liste der Kurse zu erhalten, die für beide Nutzer übereinstimmen.

PendingInvitationExists

PendingInvitationExists gibt an, dass bereits jemand eingeladen wurde, die Inhaberschaft des Kurses zu übernehmen. Dieser Fehler tritt bei der Übertragung der Kursinhaberschaft auf, wenn zuvor eine Übertragung gestartet wurde, die vom neuen Inhaber aber noch nicht akzeptiert wurde.

UserCannotOwnCourse

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

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, dass der Kurs nicht mit ihm als Kursinhaber erstellt werden kann. Dieser Fehler kann für einen anfragenden Nutzer auftreten, der kein Administrator ist, wenn er versucht, einen Kurs mit einem anderen Nutzer als Inhaber zu erstellen. Dieser Fehler kann für einen anfragenden Nutzer auftreten, der Administrator ist, wenn das als Inhaber angegebene Nutzerkonto nicht vorhanden ist oder der Nutzer nicht in seiner Domain ist.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached gibt an, 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 zum Kurs einladen im Abschnitt zu den Beschränkungen der Kursgröße.

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

HTTP 403: PERMISSION_DENIED

Alle Classroom API-Methoden können einen PERMISSION_DENIED-Fehler (HTTP 403) zurückgeben, wenn ein Endnutzer die Voraussetzungen für den Zugriff nicht erfüllt. Die Meldung , die mit dem Fehler gesendet wird, enthält eine Fehlermeldung, mit der Sie die Ursache ermitteln und Nutzer anweisen 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 nicht direkt zum Kurs hinzugefügt werden kann. Dieser Code wird zurückgegeben, wenn ein Domainadministrator versucht, einen Nutzer zu einem Kurs hinzuzufügen, und dieser Nutzer entweder keine E-Mail-Adresse hat oder nicht zur Domain gehört.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Domain administrator, zu prüfen, ob das Nutzerkonto vorhanden ist und sich in der Domain des Kurs administrators befindet.

CannotInviteUserInUntrustedDomain

CannotInviteUserInUntrustedDomain gibt an, dass sich der eingeladene oder erstellte Nutzer nicht in derselben Domain wie der Aufrufer oder in einer vertrauenswürdigen Domain des Aufrufers befindet. Für Aufrufer mit einer Google Workspace for Education Fundamentals Lizenz können nicht vertrauenswürdige Nutzer außerhalb der Domain nicht direkt hinzugefügt oder zu einem Kurs eingeladen werden.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Aufrufer, eine der folgenden Optionen zu verwenden:

  • Fügen Sie die Domains des Aufrufers und des Empfängers jeweils zur Liste der vertrauenswürdigen Domains des anderen hinzu und versuchen Sie es noch einmal.
  • Empfehlen Sie dem Aufrufer, manuell einen Einladungslink für den Kurs oder einen Kurscode zu senden. Dazu muss ein Administrator Einladungen außerhalb der Domain konfigurieren. Weitere Informationen finden Sie im Hilfeartikel Schüler oder Studenten zum Kurs einladen.
  • Empfehlen Sie dem Aufrufer, auf eine kostenpflichtige Google Workspace for Education Lizenz zu upgraden, da die Einschränkung nur für die Fundamentals-Lizenz gilt.

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 weiter. Siehe auch ClassroomDisabled, 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 weiter. Der Nutzer verwendet möglicherweise auch das falsche Konto. Geben Sie daher auch einen Link zur Verwendung mehrerer Konten an, damit der Nutzer 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 Maßnahme: Fordern Sie den Nutzer auf, die Seite zu aktualisieren oder sich noch einmal im Add-on anzumelden, damit Sie den neuen Abfrageparameter addOnToken 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 Maßnahme: Dieser Fehler kann auftreten, wenn sich der Nutzer mit einem anderen Konto im Add-on anmeldet als mit dem Konto in Classroom. Weisen Sie den Nutzer an, sich entweder von allen anderen Konten im Browser abzumelden oder Classroom in einem Inkognito-Fenster von 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 Developer Console-Projekt der OAuth Client-ID gestellt werden, mit der die Ressource erstellt wurde.

UserIneligibleToUpdateGradingPeriodSettings

UserIneligibleToUpdateGradingPeriodSettings gibt an, dass mit der Anfrage versucht wurde, die Einstellungen für den Bewertungszeitraum in einem Kurs zu ändern, in dem der anfragende Nutzer oder Kursinhaber nicht die entsprechende Google Workspace for Education-Lizenz hat oder der anfragende Nutzer keine Lehrkraft des Kurses oder kein 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 Kursrollen status nicht stellen kann. Lizenzen können in der Admin-Konsole zugewiesen werden.

HTTP 429: RESOURCE_EXHAUSTED

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

Um das Auslösen dieser Limits zu vermeiden und die Zuverlässigkeit Ihrer Anwendung zu erhöhen, verwenden Sie Wiederholungsmechanismen. 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 Konflikte zu vermeiden, sollten Sie den abgeschnittenen exponentiellen Backoff mit Jitter verwenden. Durch das Einführen 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 gibt an, dass der Nutzer bereits der maximal zulässigen Anzahl von Kursen an einem Tag beigetreten ist. Weitere Informationen finden Sie im Hilfeartikel Gruppenrichtlinien und beschränkungen im Abschnitt zu Gruppeneinladungen und -größe.

Mögliche Maßnahme: Beschreiben Sie die Ursache des Fehlers und empfehlen Sie dem Nutzer, einen Tag zu warten, bevor er dem Kurs beitritt.

HTTP 500: INTERNAL

INTERNAL gibt an, dass beim Verarbeiten der Anfrage ein unerwarteter Fehler aufgetreten ist. INTERNAL -Anfragenfehler können oft auch behoben werden, indem die Anfrage mit exponentiellem Backoff noch einmal gesendet wird. Wenn ein INTERNAL-Fehler weiterhin besteht, kann er gemeldet werden, indem Sie einen Fehler im öffentlichen Issue-Tracker der Classroom API einreichen.