Ошибки запроса
Ошибка Classroom API может содержать код ошибки, который поможет вам определить причину и правильно обработать ошибку. В зависимости от кода вы можете повторить запрос или предложить пользователям выполнить определенное действие.
На этой странице подробно описаны возможные коды ошибок, сгруппированные по коду HTTP. Дополнительную информацию о структуре сообщения об ошибке см. в разделе Структура сообщения об ошибке .
На этой странице подробно описаны возможные коды ошибок, сгруппированные по коду HTTP. См. справочную документацию, чтобы определить, какие методы возвращают тот или иной код ошибки.
HTTP 400: FAILED_PRECONDITION
FAILED_PRECONDITION
возвращается, когда пользователь пытается выполнить действие, которое не может быть разрешено либо потому, что пользователь достиг предела, либо из-за состояния приложения, такого как CourseNotModifiable
. Чтобы исправить FAILED_PRECONDITION
, попросите пользователя выполнить какое-либо действие, а затем повторите попытку. Или, в некоторых случаях, вы можете использовать альтернативные конечные точки для фиксации состояния от имени пользователя.
Ожидание приглашения существует
PendingInvitationExists
указывает, что кто-то уже был приглашен стать владельцем курса. Эта ошибка возникает во время передачи владения курсом, когда передача уже была начата, но еще не принята новым владельцем.
Курсемберлимитдостигнутый
CourseMemberLimitReached
указывает, что предпринятое действие превысит максимально допустимое количество участников курса. Этот код обычно возвращается методом students.create()
. Дополнительную информацию см. в разделе «Ограничения на размер класса» статьи Справочного центра «Пригласить учащихся в класс» .
Возможное действие : Опишите причину сбоя и предложите пользователю удалить ненужных участников курса.
КурсНетМодифицируемый
CourseNotModifiable
указывает, что соответствующий курс находится в состоянии, которое не позволяет изменять его свойства (кроме самого состояния курса).
Возможное действие : Предложить пользователю изменить курс на изменяемое состояние курса . Чтобы изменить состояние, используйтеcourses.patch courses.patch()
. Состояние курса можно изменить в запросе, изменяющем другие свойства.
КурсУчительПределдостигнут
CourseTeacherLimitReached
указывает, что запрошенное действие превысит максимально допустимое количество преподавателей курса. Этот код обычно возвращается функцией teachers.create()
. Дополнительную информацию см. в разделе «Ограничения на размер класса» статьи Справочного центра «Добавление преподавателя в класс» .
Возможное действие : Опишите причину сбоя и предложите пользователю удалить ненужных преподавателей курса. Если это применимо к вашему приложению, вы можете использовать Teachers.delete() для управления списками учителей от имени пользователя.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
указывает, что пользователь уже является членом максимально разрешенного числа групп и не может присоединиться ни к каким курсам. Этот код обычно возвращается методами students.create()
или teachers.create()
. Дополнительную информацию см. в разделе «Ограничения на размер класса» статьи Справочного центра «Пригласить учащихся на класс» .
Возможное действие : Опишите причину сбоя и предложите пользователю покинуть все курсы, в которых он не участвует. Пользователь может рассмотреть возможность создания дополнительной учетной записи, если ему необходимо участвовать в дополнительных курсах. Если это применимо к вашему приложению, вы можете использовать students.create()
или teachers.delete()
для управления списками от имени пользователя.
ВложениеNotVisible
AttachmentNotVisible
указывает, что одно или несколько указанных вложений либо не видны пользователю, либо не относятся к запрошенному типу, либо не существуют. Например, эту ошибку будут возвращать объекты на Диске, к которым не был предоставлен доступ пользователю.
Возможное действие : Опишите причину сбоя и предложите пользователю перепроверить включенные в него идентификаторы, такие как идентификаторы файлов на Диске. Кроме того, убедитесь, что у пользователя есть необходимые разрешения для просмотра вложения.
НевозможноRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
указывает, что владельца папки курса на Диске удалить невозможно.
Возможное действие : Опишите причину сбоя и предложите пользователю передать право собственности на папку курса на Диске другому пользователю и повторить попытку.
НевозможноRemoveCourseOwner
CannotRemoveCourseOwner
указывает, что владельца курса нельзя удалить.
Возможное действие : Опишите причину сбоя и предложите не удалять владельца курса. В большинстве случаев пользователь пытается удалить себя, что запрещено.
НевозможноRemoveCourseOwnerTransferIncomplete
CannotRemoveCourseOwnerTransferIncomplete
указывает, что владельца курса нельзя удалить, поскольку передача права собственности на этот класс все еще продолжается.
Возможное действие : Опишите причину сбоя и предложите пользователю подождать несколько минут, пока асинхронное действие по передаче владения классом завершится, а затем повторите попытку.
CannotRemoveTeacherWithNoCourseOwner
CannotRemoveTeacherWithNoCourseOwner
указывает, что преподавателя нельзя удалить из курса, у которого нет владельца.
Возможные действия : Опишите причину сбоя и предложите не отстранять преподавателя. В большинстве случаев учетная запись владельца курса была удалена, что приводило к недопустимому состоянию курса.
НеактивныйКурсеВладелец
InactiveCourseOwner
указывает, что запрошенное действие не разрешено, поскольку учетная запись владельца курса удалена. Прежде чем предпринять запрошенное действие, администратору владельца курса необходимо восстановить учетную запись владельца курса.
Возможное действие : Опишите причину сбоя и предложите администратору восстановить учетную запись владельца курса, прежде чем повторять операцию.
Неправомочный владелец
IneligibleOwner
указывает, что пользователя нельзя добавить в качестве владельца курса, поскольку он не является сопреподавателем.
Возможные действия : Опишите причину неисправности. Если запрашивающий пользователь не является администратором, предложите ему сначала отправить пользователю приглашение стать преподавателем курса, прежде чем обновлять имя владельца. Если запрашивающий пользователь является администратором, предложите сначала добавить пользователя в качестве сопреподавателя курса.
ПользовательCannotOwnCourse
UserCannotOwnCourse
указывает, что пользователя нельзя добавить в качестве владельца курса.
Возможное действие : Опишите причину сбоя и предложите, чтобы курс не мог быть создан с пользователем в качестве владельца курса. Пользователь, не являющийся администратором, отправляющий запрос, может увидеть эту ошибку, если попытается создать курс, владельцем которого является другой пользователь, а не он сам. Администратор, запрашивающий пользователя, может увидеть эту ошибку, если учетная запись пользователя, указанная в качестве владельца, не существует или пользователь не находится в его домене.
HTTP 429: RESOURCE_EXHAUSTED
RESOURCE_EXHAUSTED
возвращается, когда запрошенное действие не разрешено из-за исчерпания какого-либо ресурса, например квоты или мощности сервера. Ошибки запросов такого типа обычно возникают из-за чрезмерной нагрузки вашего приложения.
Чтобы избежать срабатывания этих ограничений и повысить надежность вашего приложения, используйте механизмы повтора. К допустимым механизмам повторных попыток относятся:
Используйте усеченную экспоненциальную отсрочку, чтобы повторить запрос и максимизировать пропускную способность запросов в параллельных средах.
Чтобы избежать коллизий, рассмотрите усеченную экспоненциальную задержку с джиттером. Введение джиттера может помочь вашим запросам выполняться быстрее, вводя случайную задержку, которая распределяет всплески запросов.
Если ваше приложение возвращает ошибки RESOURCE_EXHAUSTED
из-за ограничений квоты, отправьте увеличение квоты. Дополнительную информацию см. в статье Справочного центра по квотам Monitor API .
Усеркурседжоинрателимитреседед
UserCourseJoinRateLimitReached
указывает, что пользователь уже присоединился к максимально допустимому количеству курсов за один день. Дополнительную информацию см. в разделе «Приглашения и размер групп» статьи Справочного центра «Понимание политик и ограничений групп» .
Возможное действие : Опишите причину сбоя и предложите пользователю подождать один день, прежде чем присоединиться к курсу.
HTTP 500: INTERNAL
INTERNAL
указывает на то, что при обработке запроса возникла непредвиденная ошибка. INTERNAL
ошибки запроса также часто можно устранить, используя экспоненциальную отсрочку для повторной попытки запроса. Если INTERNAL
ошибка не устранена, о ней можно сообщить, отправив сообщение об ошибке в систему отслеживания общедоступных проблем API Класса .