Request Errors

요청 오류

Classroom API 오류에는 원인을 파악하고 오류를 올바르게 처리하는 데 도움이 되는 오류 코드가 포함될 수 있습니다. 코드에 따라 요청을 다시 시도하거나 사용자에게 특정 작업을 수행하도록 지시할 수 있습니다.

이 페이지에서는 발생할 수 있는 오류 코드를 HTTP 코드별로 그룹화하여 자세히 설명합니다. 오류 메시지의 구조에 대한 자세한 내용은 오류 메시지 구조를 참조하세요.

이 페이지에서는 발생할 수 있는 오류 코드를 HTTP 코드별로 그룹화하여 자세히 설명합니다. 특정 오류 코드를 반환하는 메서드를 확인하려면 참조 문서를 확인하세요.

HTTP 400: FAILED_PRECONDITION

사용자가 제한에 도달했거나 애플리케이션 상태(예: CourseNotModifiable)에 도달하여 허용할 수 없는 작업을 시도하면 FAILED_PRECONDITION이 반환됩니다. FAILED_PRECONDITION을 수정하려면 사용자에게 조치를 취하도록 안내한 후 다시 시도하세요. 또는 대체 엔드포인트를 사용하여 사용자를 대신하여 상태를 수정할 수도 있습니다.

PendingInvitationExists

PendingInvitationExists은 이미 다른 사용자가 수업 소유권을 갖도록 초대받았음을 나타냅니다. 이전에 시작되었지만 새 소유자가 아직 수락하지 않은 경우 수업 소유권 이전 중에 이 오류가 발생합니다.

CourseMemberLimitReached

CourseMemberLimitReached는 작업을 시도하면 허용된 최대 수업 회원 수를 초과하게 됨을 나타냅니다. 이 코드는 일반적으로 students.create()에서 반환됩니다. 자세한 내용은 수업에 학생 초대하기 고객센터 도움말의 '수업 크기 제한' 섹션을 참조하세요.

가능한 조치: 실패의 원인을 설명하고 불필요한 수업 회원을 삭제하도록 사용자에게 제안합니다.

CourseNotModifiable

CourseNotModifiable은 관련 과정이 과정 상태 자체를 제외하고 속성을 수정할 수 없는 상태에 있음을 나타냅니다.

가능한 작업: 사용자에게 강의를 수정 가능한 과정 상태로 변경하라는 메시지를 표시합니다. 상태를 변경하려면 courses.patch()을 사용합니다. 과정 상태는 다른 속성을 변경하는 요청에서 변경할 수 있습니다.

CourseTeacherLimitReached

CourseTeacherLimitReached은 요청된 작업이 허용된 최대 수업 교사 수를 초과하게 됨을 나타냅니다. 이 코드는 일반적으로 teachers.create()에서 반환합니다. 자세한 내용은 고객센터 도움말의 수업에 공동 교사 추가하기 도움말의 '수업 크기 제한' 섹션을 참조하세요.

가능한 조치: 실패의 원인을 설명하고 불필요한 교육과정 교사를 삭제하도록 사용자에게 제안합니다. 앱에 해당하는 경우 teachers.delete()를 사용하여 사용자를 대신하여 교사 출석부를 관리할 수 있습니다.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached는 사용자가 이미 허용된 최대 그룹 수에 도달했으며 강의에 참여할 수 없음을 나타냅니다. 이 코드는 일반적으로 students.create() 또는 teachers.create()에서 반환됩니다. 자세한 내용은 수업에 학생 초대하기 고객센터 도움말의 '수업 크기 제한' 섹션을 참조하세요.

가능한 조치: 실패의 원인을 설명하고 사용자가 참여하지 않는 강의에서 나가도록 안내합니다. 추가 과정에 참여해야 하는 경우 추가 계정을 만드는 것이 좋습니다. 앱에 해당하는 경우 students.create() 또는 teachers.delete()를 사용하여 사용자를 대신하여 출석부를 관리할 수 있습니다.

AttachmentNotVisible

AttachmentNotVisible는 지정된 하나 이상의 첨부파일이 사용자에게 표시되지 않거나 요청된 유형이 아닌 경우를 나타냅니다. 예를 들어 사용자에게 공유되지 않은 Drive 항목이 있다면 이 오류가 표시됩니다.

가능한 조치: 실패의 원인을 설명하고 사용자에게 포함된 Drive 파일 ID와 같은 식별자를 다시 확인하도록 제안합니다. 또한 사용자에게 첨부파일을 볼 수 있는 적절한 권한이 있는지 확인하세요.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner은 수업 Drive 폴더의 소유자가 삭제할 수 없음을 나타냅니다.

가능한 조치: 실패의 원인을 설명하고 사용자에게 수업 드라이브 폴더의 소유권을 다른 사용자에게 이전한 후 다시 시도하도록 안내합니다.

CannotRemoveCourseOwner

CannotRemoveCourseOwner는 수업 소유자가 삭제될 수 없음을 나타냅니다.

가능한 조치: 실패의 원인을 설명하고 수업 소유자가 삭제되지 않을 것을 제안합니다. 대부분의 경우, 사용자는 자신을 삭제하는 것이 허용되지 않습니다.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete는 수업의 소유권 이전이 아직 진행 중이므로 과정 소유자를 삭제할 수 없음을 나타냅니다.

가능한 조치: 실패의 원인을 설명하고 수업 소유권 이전 비동기 작업이 완료될 때까지 잠시 기다린 후 다시 시도하도록 안내합니다.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner는 소유자가 없는 수업에서 교사가 삭제될 수 없음을 나타냅니다.

가능한 조치: 실패의 원인을 설명하고 교사가 퇴사할 수 없다고 제안합니다. 대부분의 경우 수업 소유자의 사용자 계정이 삭제되어 수업 상태가 잘못되는 경우가 발생했습니다.

InactiveCourseOwner

InactiveCourseOwner는 수업 소유자의 계정이 삭제되어 요청된 작업이 허용되지 않음을 나타냅니다. 수업 소유자의 관리자가 요청된 작업을 수행하려면 수업 소유자의 계정을 복원해야 합니다.

가능한 조치: 실패의 원인을 설명하고 작업을 다시 시도하기 전에 관리자에게 과정 소유자의 계정을 복원하도록 제안합니다.

IneligibleOwner

IneligibleOwner는 사용자가 공동 교사가 아니기 때문에 사용자를 강의 소유자로 추가할 수 없음을 나타냅니다.

가능한 조치: 실패의 원인을 설명합니다. 요청하는 사용자가 관리자가 아닌 경우 소유자를 업데이트하기 전에 먼저 사용자에게 수업의 교사로 초대하라는 초대를 보내도록 안내하세요. 요청하는 사용자가 관리자인 경우 먼저 사용자를 강의의 공동 교사로 추가하도록 제안합니다.

UserCannotOwnCourse

UserCannotOwnCourse는 사용자를 수업의 소유자로 추가할 수 없음을 나타냅니다.

가능한 조치: 실패의 원인을 설명하고 수업 소유자로서 사용자를 대상으로 강의를 만들 수 없다고 제안합니다. 관리자가 아닌 사용자가 본인 이외의 다른 사용자를 소유자로 하여 강의를 만들려고 하면 이 오류가 표시될 수 있습니다. 소유자로 지정된 사용자 계정이 없거나 사용자가 도메인에 없는 경우 사용자를 요청한 관리자에게 이 오류가 표시될 수 있습니다.

HTTP 429: RESOURCE_EXHAUSTED

할당량 또는 서버 용량과 같은 일부 리소스가 소진되어 요청된 작업이 허용되지 않는 경우 RESOURCE_EXHAUSTED가 반환됩니다. 이러한 유형의 요청 오류는 일반적으로 앱이 과도한 로드를 생성했기 때문에 발생합니다.

이러한 한도가 트리거되지 않도록 하고 애플리케이션의 안정성을 높이려면 재시도 메커니즘을 사용하세요. 유효한 재시도 메커니즘은 다음과 같습니다.

  • 잘린 지수 백오프를 사용하여 요청을 재시도하고 동시 환경에서 요청 처리량을 극대화합니다.

  • 충돌을 방지하려면 잡음으로 잘린 지수 백오프를 고려하세요. 잡음을 도입하면 요청 급증을 분산시키는 무작위 지연을 도입하여 요청이 더 빠르게 성공하는 데 도움이 될 수 있습니다.

할당량 제한으로 인해 애플리케이션에서 RESOURCE_EXHAUSTED개의 오류를 반환하는 경우 할당량 증가를 제출하세요. 자세한 내용은 API 할당량 모니터링 고객센터 도움말을 참고하세요.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached는 사용자가 이미 하루에 허용된 최대 강의 수에 참여했음을 나타냅니다. 자세한 내용은 고객센터 도움말의 그룹스 정책 및 한도 이해하기의 '그룹 초대 및 크기' 섹션을 참고하세요.

가능한 조치: 실패의 원인을 설명하고 과정에 참여하기 전에 사용자에게 하루 동안 기다릴 것을 제안합니다.

HTTP 500: INTERNAL

INTERNAL는 요청을 처리하는 동안 예상치 못한 오류가 발생했음을 나타냅니다. 지수 백오프를 사용하여 요청을 재시도하면 INTERNAL 요청 오류를 해결할 수도 있습니다. INTERNAL 오류가 지속되면 Classroom API 공개 Issue Tracker에 버그를 신고하여 신고할 수 있습니다.