Nesta página, descrevemos algumas mensagens de erro comuns da API Google Sala de Aula, problemas e possíveis ações para os seguintes tipos de erros:
- HTTP 400:
FAILED_PRECONDITION
- HTTP 403:
PERMISSION_DENIED
- HTTP 429:
RESOURCE_EXHAUSTED
- HTTP 500:
INTERNAL
HTTP 400: FAILED_PRECONDITION
Um FAILED_PRECONDITION
é retornado quando o usuário tenta uma ação que
não pode ser permitida, seja porque o usuário atingiu um limite ou um estado
do aplicativo, como CourseNotModifiable
. Para corrigir um FAILED_PRECONDITION
,
oriente o usuário a realizar uma ação e tente novamente. Em alguns casos, você
pode usar endpoints alternativos para corrigir o estado em nome do usuário.
AttachmentNotVisible
AttachmentNotVisible
indica que um ou mais anexos especificados não estão
visíveis para o usuário, não são do tipo solicitado ou não existem. Por
exemplo, os itens do Drive que não foram compartilhados com o usuário retornariam esse
erro.
Ação possível: descreva a causa da falha e sugira que o usuário verifique novamente os identificadores incluídos, como os IDs de arquivos do Drive. Além disso, verifique se o usuário tem as permissões adequadas para visualizar o anexo.
CannotRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
indica que o proprietário da pasta do Drive do curso
não pode ser removido.
Ação possível: descreva a causa da falha e sugira que o usuário transfira a propriedade da pasta do Drive do curso para outro usuário e tente novamente.
CannotRemoveCourseOwner
CannotRemoveCourseOwner
indica que o proprietário do curso não pode ser removido.
Ação possível: descreva a causa da falha e sugira que o proprietário do curso não pode ser removido. Na maioria dos casos, o usuário está tentando remover a própria conta, o que não é permitido.
CannotRemoveCourseOwnerTransferIncomplete
CannotRemoveCourseOwnerTransferIncomplete
indica que o proprietário do curso não pode
ser removido porque a transferência de propriedade dessa turma ainda está
em andamento.
Ação possível: descreva a causa da falha e sugira que o usuário aguarde alguns instantes até que a ação assíncrona de transferência da propriedade da turma seja concluída e tente novamente.
CannotRemoveTeacherWithNoCourseOwner
CannotRemoveTeacherWithNoCourseOwner
indica que um professor não pode ser
removido de um curso sem proprietário.
Ação possível: descreva a causa da falha e sugira que o professor não pode ser removido. Na maioria dos casos, a conta de usuário do proprietário do curso foi excluída, causando um estado inválido do curso.
CourseMemberLimitReached
CourseMemberLimitReached
indica que a ação tentada excederia
o número máximo permitido de membros do curso. Esse código geralmente é retornado pelo
students.create()
.
Para mais informações, consulte a seção "Limites de turmas" do artigo
Convidar estudantes para uma turma
da Central de Ajuda.
Ação possível: descreva a causa da falha e sugira que o usuário remova os membros do curso desnecessários.
CourseNotModifiable
CourseNotModifiable
indica que o curso relevante está em um estado que
não permite que as propriedades sejam modificadas (exceto o estado do
curso).
Ação possível:
peça ao usuário para mudar o curso para um
estado modificável. Para
mudar o estado, use
courses.patch()
.
O estado do curso pode ser alterado em uma solicitação que muda outras propriedades.
CourseTeacherLimitReached
CourseTeacherLimitReached
indica que a ação solicitada excederia
o número máximo permitido de professores do curso. Esse código geralmente é retornado
pelo teachers.create()
.
Para mais informações, consulte a seção "Limites de turmas" do artigo
Adicionar um professor auxiliar a uma turma
da Central de Ajuda.
Ação possível: descreva a causa da falha e sugira que o usuário remova professores de curso desnecessários. Se aplicável ao seu app, use teachers.delete() para gerenciar as listas de professores em nome do usuário.
InactiveCourseOwner
InactiveCourseOwner
indica que a ação solicitada não é permitida
porque a conta do proprietário do curso foi excluída. O administrador do proprietário do curso precisa restaurar a conta dele antes de realizar a ação solicitada.
Ação possível: descreva a causa da falha e sugira que o administrador restaure a conta do proprietário do curso antes de tentar a operação novamente.
IneligibleOwner
IneligibleOwner
indica que o usuário não pode ser adicionado como proprietário do
curso porque não é um coprofessor.
Ação possível: descreva a causa da falha. Se o usuário solicitante não for um administrador, sugira que ele primeiro envie um convite para ser professor no curso antes de atualizar o proprietário. Se o usuário solicitante for um administrador, sugira que ele adicione o usuário como coprofessor do curso.
PendingInvitationExists
PendingInvitationExists
indica que alguém já foi convidado para assumir
a propriedade do curso. Esse erro ocorre durante a transferência de propriedade do curso
quando uma transferência foi iniciada anteriormente, mas ainda não foi aceita pelo
novo proprietário.
UserCannotOwnCourse
UserCannotOwnCourse
indica que o usuário não pode ser adicionado como proprietário do
curso.
Ação possível: descreva a causa da falha e sugira que o curso não pode ser criado com o usuário como proprietário. Um usuário que não é administrador pode receber esse erro se tentar criar um curso com um usuário diferente dele mesmo como proprietário. Um administrador que solicita o usuário pode receber esse erro se a conta de usuário especificada como proprietária não existir ou se o usuário não estiver no domínio dele.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
indica que o usuário já é membro
do número máximo de grupos permitido e não pode participar de nenhum curso. Esse código é
normalmente retornado por
students.create()
ou
teachers.create()
.
Para mais informações, consulte a seção "Limites de turmas" do artigo
Convidar estudantes para uma turma
da Central de Ajuda.
Ação possível:
descreva a causa da falha e sugira que o usuário saia dos cursos
em que não está participando. O usuário pode considerar criar outra conta
se precisar participar de mais cursos. Se aplicável ao seu app,
use students.create()
ou teachers.delete()
para gerenciar as listas de participantes em nome do usuário.
HTTP 403: PERMISSION_DENIED
Todos os métodos da API Classroom podem retornar um erro PERMISSION_DENIED
(HTTP 403)
se um usuário final não atender aos pré-requisitos de acesso. A mensagem
que acompanha o erro contém uma
mensagem de erro para
ajudar você a identificar a causa e direcionar os usuários para a ação apropriada.
As seções a seguir descrevem mensagens de erro comuns da API Classroom.
CannotDirectAddUser
CannotDirectAddUser
indica que um usuário não pode ser adicionado diretamente ao
curso. Esse código acontece quando um administrador de domínio tenta adicionar um
usuário a um curso e esse usuário não tem um endereço de e-mail ou não
pertence ao domínio.
Ação possível: descreva a causa da falha e sugira que o administrador do domínio verifique se a conta de usuário existe e está no domínio do administrador do curso.
ClassroomApiDisabled
ClassroomApiDisabled
indica que o usuário solicitante não tem acesso
à API Classroom.
Ação possível: encaminhar o usuário para instruções sobre como ativar o acesso aos dados do Google Sala de Aula. Consulte também ClassroomDisabled, porque o usuário pode estar usando a conta errada.
ClassroomDisabled
ClassroomDisabled
indica que o usuário solicitante não tem acesso ao
Google Sala de Aula.
Ação possível: encaminhar o usuário para instruções sobre como ativar o acesso ao Google Sala de Aula. O usuário também pode estar usando a conta errada. Forneça um link para usar várias contas para que o usuário selecione a conta correta.
ExpiredAddOnToken
ExpiredAddOnToken
indica que o token do complemento usado para fazer chamadas para
a API expirou.
Ação possível: peça ao usuário para atualizar a página ou fazer login no complemento
novamente para que você possa receber o novo parâmetro de consulta addOnToken
do
URL da solicitação.
InvalidAddOnToken
InvalidAddOnToken
indica que o token de complemento transmitido em uma solicitação não está
autorizado a criar um anexo de complemento na atividade.
Ação possível: esse erro pode ser gerado se o usuário fizer login no complemento com uma conta diferente da conta no Google Sala de Aula. Instrua o usuário a sair de todas as outras contas no navegador ou abrir o Google Sala de Aula em uma janela anônima do Chrome.
ProjectPermissionDenied
ProjectPermissionDenied
indica que a solicitação tentou modificar um
recurso associado a um projeto diferente do Play Console.
Ação possível: indique que seu app não pode fazer a solicitação pretendida. Ele só pode ser feito pelo projeto do console do desenvolvedor do ID do cliente OAuth que criou o recurso.
UserIneligibleToUpdateGradingPeriodSettings
UserIneligibleToUpdateGradingPeriodSettings
indica que a solicitação
tentou modificar as configurações do período de avaliação em um curso em que o usuário solicitante
ou o proprietário do curso não tem a licença adequada do Google Workspace for
Education.
Ação possível: indique que seu aplicativo não pode fazer a solicitação pretendida para atualizar as configurações do período de avaliação devido ao status de licenciamento do usuário solicitante ou do proprietário do curso. As licenças podem ser atribuídas no Google Admin Console.
HTTP 429: RESOURCE_EXHAUSTED
O RESOURCE_EXHAUSTED
é retornado quando a ação solicitada não é permitida
porque algum recurso, como cota ou capacidade do servidor, está esgotado. Esses
tipos de erros de solicitação geralmente ocorrem porque o app produziu uma carga
excessiva.
Para evitar o acionamento desses limites e aumentar a confiabilidade do aplicativo, use mecanismos de nova tentativa. Os mecanismos de nova tentativa válidos incluem:
Use a espera exponencial truncada para repetir a solicitação e maximizar o rendimento de solicitações em ambientes simultâneos.
Para evitar colisões, considere a espera exponencial truncada com instabilidade. A introdução de jitter pode ajudar suas solicitações a serem bem-sucedidas mais rapidamente, introduzindo um atraso aleatório que espalha os picos de solicitações.
Se o aplicativo retornar erros RESOURCE_EXHAUSTED
devido a limitações de cota, envie um aumento de cota. Para mais informações, consulte o artigo da Central de Ajuda
Monitorar cotas de API.
UserCourseJoinRateLimitReached
UserCourseJoinRateLimitReached
indica que o usuário já participou
do número máximo permitido de cursos em um dia. Para mais informações, consulte
a seção "Convites e tamanho do grupo" do artigo
Entender as políticas e os limites do Grupos
da Central de Ajuda.
Ação possível: descreva a causa da falha e sugira que o usuário espere um dia antes de participar do curso.
HTTP 500: INTERNAL
INTERNAL
indica que um erro inesperado ocorreu durante o processamento da
solicitação. Os erros de solicitação INTERNAL
também podem ser resolvidos usando a espera
exponencial para repetir a solicitação. Se um erro INTERNAL
persistir, ele poderá ser
informado registrando um bug no
Rastreador de problemas público da API Classroom.