Request Errors

Ошибки запроса

Ошибка 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 Класса .