Messaggi di errore comuni dell'API Google Classroom

Questa pagina descrive alcuni messaggi di errore, problemi e possibili azioni comuni dell'API Google Classroom per i seguenti tipi di errori:

HTTP 400: FAILED_PRECONDITION

Viene restituito un FAILED_PRECONDITION quando l'utente tenta un'azione che non può essere consentita, perché l'utente ha raggiunto un limite o uno stato dell'applicazione, ad esempio CourseNotModifiable. Per risolvere un problema FAILED_PRECONDITION, invita l'utente a eseguire un'azione e poi riprova. In alcuni casi, potresti utilizzare endpoint alternativi per correggere lo stato per conto dell'utente.

AttachmentNotVisible

AttachmentNotVisible indica che uno o più allegati specificati non sono visibili all'utente, non sono del tipo richiesto o non esistono. Ad esempio, gli elementi di Drive che non sono stati condivisi con l'utente restituiranno questo errore.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di ricontrollare gli identificatori, ad esempio gli ID file di Drive, che ha incluso. Inoltre, assicurati che l'utente disponga delle autorizzazioni appropriate per visualizzare l'allegato.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner indica che il proprietario della cartella Drive del corso non può essere rimosso.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di trasferire la proprietà della cartella Drive del corso a un altro utente e riprovare.

CannotRemoveCourseOwner

CannotRemoveCourseOwner indica che il proprietario del corso non può essere rimosso.

Azione possibile: Descrivi la causa dell'errore e suggerisci che il proprietario del corso potrebbe non essere rimosso. Nella maggior parte dei casi, l'utente sta tentando di rimuovere se stesso, il che non è consentito.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete indica che il proprietario del corso non può essere rimosso perché il trasferimento della proprietà di questo corso è ancora in corso.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di attendere qualche istante il completamento dell'azione asincrona di trasferimento della proprietà del corso, quindi riprovare.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner indica che un insegnante non può essere rimosso da un corso senza proprietario.

Azione possibile: Descrivi la causa dell'errore e suggerisci che l'insegnante potrebbe non essere rimosso. Nella maggior parte dei casi, l'account utente del proprietario del corso è stato eliminato, causando uno stato del corso non valido.

CourseMemberLimitReached

CourseMemberLimitReached indica che l'azione tentata supererebbe il numero massimo consentito di membri del corso. Questo codice viene in genere restituito da students.create() Per ulteriori informazioni, consulta la sezione "Limiti delle dimensioni dei corsi" dell'articolo del Centro assistenza Invitare gli studenti a un corso.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di rimuovere i membri del corso non necessari

CourseNotModifiable

CourseNotModifiable indica che il corso pertinente si trova in uno stato che non consente di modificarne le proprietà (a parte lo stato del corso stesso).

Azione possibile: chiedi all'utente di modificare il corso in uno stato modificabile. Per modificare lo stato, utilizza courses.patch(). Lo stato del corso può essere modificato in una richiesta che modifica altre proprietà.

CourseTeacherLimitReached

CourseTeacherLimitReached indica che l'azione richiesta supererebbe il numero massimo consentito di insegnanti del corso. Questo codice viene in genere restituito dal metodo teachers.create(). Per ulteriori informazioni, consulta la sezione "Limitazioni delle dimensioni del corso" dell'articolo del Centro assistenza Aggiungere un co-insegnante a un corso.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di rimuovere gli insegnanti del corso non necessari. Se applicabile alla tua app, puoi utilizzare il metodo teachers.delete() per gestire gli elenchi degli insegnanti per conto dell'utente.

CourseTopicLimitReached

CourseTopicLimitReached indica che l'azione richiesta supererebbe il numero massimo consentito di argomenti in un corso. Questo codice viene in genere restituito dal metodo courses.topics.create().

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di rimuovere gli argomenti non necessari. Se applicabile alla tua app, puoi utilizzare il metodo courses.topics.delete() per gestire gli argomenti per conto dell'utente.

InactiveCourseOwner

InactiveCourseOwner indica che l'azione richiesta non è consentita perché l'account del proprietario del corso è stato eliminato. L'amministratore del proprietario del corso deve ripristinare l'account del proprietario del corso prima di intraprendere l'azione richiesta.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'amministratore di ripristinare l'account del proprietario del corso prima di riprovare l'operazione.

IneligibleOwner

IneligibleOwner indica che l'utente non può essere aggiunto come proprietario del corso perché non è un insegnante secondario.

Azione possibile: Descrivi la causa dell'errore. Se l'utente richiedente non è un amministratore, suggerisci di inviare prima all'utente un invito a diventare insegnante del corso prima di aggiornare il proprietario. Se l'utente richiedente è un amministratore, suggerisci di aggiungerlo prima come co-insegnante del corso.

PendingInvitationExists

PendingInvitationExists indica che qualcuno è già stato invitato ad assumere la proprietà del corso. Questo errore si verifica durante il trasferimento della proprietà del corso quando un trasferimento è stato avviato in precedenza, ma non è ancora stato accettato dal nuovo proprietario.

UserCannotOwnCourse

UserCannotOwnCourse indica che l'utente non può essere aggiunto come proprietario del corso.

Azione possibile: descrivi la causa dell'errore e suggerisci che il corso non può essere creato con l'utente come proprietario del corso. Un utente richiedente non amministratore potrebbe visualizzare questo errore se tenta di creare un corso con un utente diverso da sé come proprietario. Un amministratore che richiede un utente potrebbe visualizzare questo errore se l'account utente specificato come proprietario non esiste o se l'utente non si trova nel suo dominio.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached indica che l'utente è già membro del numero massimo consentito di gruppi e non può iscriversi ad alcun corso. Questo codice viene in genere restituito da students.create() o teachers.create(). Per ulteriori informazioni, consulta la sezione "Limitazioni delle dimensioni del corso" dell'articolo del Centro assistenza Invitare gli studenti a un corso.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di abbandonare i corsi a cui non partecipa. L'utente può valutare la possibilità di creare un account aggiuntivo se ha bisogno di partecipare a più corsi. Se applicabile alla tua app, puoi utilizzare students.create() o teachers.delete() per gestire gli elenchi per conto dell'utente.

HTTP 403: PERMISSION_DENIED

Tutti i metodi dell'API Classroom possono restituire un errore PERMISSION_DENIED (HTTP 403) se un utente finale non soddisfa i prerequisiti per l'accesso. Il messaggio che accompagna l'errore contiene un messaggio di errore per aiutarti a identificare la causa e indirizzare gli utenti a intraprendere l'azione appropriata.

Le sezioni seguenti descrivono i messaggi di errore comuni dell'API Classroom.

CannotDirectAddUser

CannotDirectAddUser indica che un utente non può essere aggiunto direttamente al corso. Questo codice viene visualizzato quando un amministratore di dominio tenta di aggiungere un utente a un corso e l'utente non ha un indirizzo email o non appartiene al dominio.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'amministratore del dominio di verificare che l'account utente esista e si trovi nel dominio dell'amministratore del corso.

ClassroomApiDisabled

ClassroomApiDisabled indica che l'utente richiedente non ha accesso all'API Classroom.

Azione possibile: Indirizza l'utente alle istruzioni su come attivare l'accesso ai dati di Classroom. Consulta anche ClassroomDisabled, in quanto l'utente potrebbe utilizzare l'account sbagliato.

ClassroomDisabled

ClassroomDisabled indica che l'utente richiedente non ha accesso a Classroom.

Azione possibile: Indirizza l'utente alle istruzioni per attivare l'accesso a Classroom. L'utente potrebbe anche utilizzare l'account sbagliato, quindi potresti anche fornire un link all'articolo Utilizzare più account in modo che possa selezionare l'account corretto.

ExpiredAddOnToken

ExpiredAddOnToken indica che il token del componente aggiuntivo utilizzato per effettuare chiamate all'API è scaduto.

Azione possibile: chiedi all'utente di aggiornare la pagina o di accedere di nuovo al componente aggiuntivo in modo da poter ottenere il nuovo parametro di query addOnToken dall'URL della richiesta.

InvalidAddOnToken

InvalidAddOnToken indica che il token del componente aggiuntivo passato in una richiesta non è autorizzato a creare un allegato del componente aggiuntivo nel compito.

Azione possibile: questo errore può essere generato se l'utente accede al componente aggiuntivo con un account diverso da quello di Classroom. Chiedi all'utente di disconnettersi da tutti gli altri account nel browser o di aprire Classroom in una finestra di navigazione in incognito di Chrome.

ProjectPermissionDenied

ProjectPermissionDenied indica che la richiesta ha tentato di modificare una risorsa associata a un progetto Console per gli sviluppatori diverso.

Azione possibile: Indica che la tua applicazione non può effettuare la richiesta prevista. Può essere eseguita solo dal progetto della console per gli sviluppatori dell'ID client OAuth che ha creato la risorsa.

UserIneligibleToUpdateGradingPeriodSettings

UserIneligibleToUpdateGradingPeriodSettings indica che la richiesta ha tentato di modificare le impostazioni del periodo di valutazione in un corso in cui l'utente che ha effettuato la richiesta o il proprietario del corso non dispone della licenza Google Workspace for Education appropriata oppure l'utente che ha effettuato la richiesta non è un insegnante del corso o un amministratore del dominio.

Azione possibile: Indica che la tua applicazione non può effettuare la richiesta prevista di aggiornamento delle impostazioni del periodo di valutazione a causa dello stato della licenza o del ruolo del corso. Le licenze possono essere assegnate nella Console di amministrazione Google.

HTTP 429: RESOURCE_EXHAUSTED

L'errore RESOURCE_EXHAUSTED viene restituito quando l'azione richiesta non è consentita perché alcune risorse, come la quota o la capacità del server, sono esaurite. Questi tipi di errori di richiesta si verificano in genere perché la tua app ha prodotto un carico eccessivo.

Per evitare di attivare questi limiti e aumentare l'affidabilità della tua applicazione, utilizza meccanismi di ripetizione. I meccanismi di ripetizione validi includono:

  • Utilizza il backoff esponenziale troncato per riprovare a inviare la richiesta e massimizzare la velocità effettiva delle richieste in ambienti simultanei.

  • Per evitare collisioni, valuta la possibilità di utilizzare il backoff esponenziale troncato con jitter. L'introduzione di jitter può contribuire a una rapida riuscita delle richieste introducendo un ritardo casuale che distribuisce i picchi di richieste.

Se la tua applicazione restituisce errori RESOURCE_EXHAUSTED a causa di limitazioni della quota, richiedi un aumento della quota. Per ulteriori informazioni, consulta l'articolo del Centro assistenza Monitorare le quote API.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached indica che l'utente ha già partecipato al numero massimo di corsi consentiti in un giorno. Per ulteriori informazioni, consulta la sezione "Inviti e dimensioni del gruppo" dell'articolo del Centro assistenza Informazioni su criteri e limiti di Gruppi.

Azione possibile: Descrivi la causa dell'errore e suggerisci all'utente di attendere un giorno prima di iscriversi al corso.

HTTP 500: INTERNAL

INTERNAL indica che si è verificato un errore imprevisto durante l'elaborazione della richiesta. Gli errori di richiesta INTERNAL possono spesso essere risolti anche utilizzando il backoff esponenziale per riprovare a inviare la richiesta. Se l'errore INTERNAL persiste, può essere segnalato inviando un bug allo strumento Issue Tracker pubblico dell'API Classroom.