Halaman ini menjelaskan beberapa pesan error, masalah, dan kemungkinan tindakan umum Google Classroom API untuk jenis error berikut:
- HTTP 400:
FAILED_PRECONDITION
- HTTP 403:
PERMISSION_DENIED
- HTTP 429:
RESOURCE_EXHAUSTED
- HTTP 500:
INTERNAL
HTTP 400: FAILED_PRECONDITION
FAILED_PRECONDITION
ditampilkan saat pengguna mencoba tindakan yang
tidak dapat diizinkan, baik karena pengguna telah mencapai batas atau status
aplikasi, seperti CourseNotModifiable
. Untuk memperbaiki FAILED_PRECONDITION
,
instruksikan pengguna untuk melakukan beberapa tindakan, lalu coba lagi. Atau, dalam beberapa kasus, Anda
dapat menggunakan endpoint alternatif untuk memperbaiki status atas nama pengguna.
AttachmentNotVisible
AttachmentNotVisible
menunjukkan bahwa satu atau beberapa lampiran yang ditentukan
tidak terlihat oleh pengguna, bukan dari jenis yang diminta, atau tidak ada. Misalnya, item Drive yang belum dibagikan kepada pengguna akan menampilkan error
ini.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan pengguna untuk memeriksa ulang ID, seperti ID file Drive, yang telah mereka sertakan. Selain itu, pastikan pengguna memiliki izin yang sesuai untuk melihat lampiran.
CannotRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
menunjukkan bahwa pemilik folder Drive kursus
tidak boleh dihapus.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan pengguna untuk mentransfer kepemilikan folder Drive kursus ke pengguna lain, lalu coba lagi.
CannotRemoveCourseOwner
CannotRemoveCourseOwner
menunjukkan bahwa pemilik kursus tidak boleh dihapus.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan bahwa pemilik kursus tidak boleh dihapus. Pada umumnya, pengguna mencoba menghapus dirinya sendiri, yang tidak diizinkan.
CannotRemoveCourseOwnerTransferIncomplete
CannotRemoveCourseOwnerTransferIncomplete
menunjukkan bahwa pemilik kursus tidak boleh
dihapus karena transfer kepemilikan kelas ini masih
berlangsung.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan pengguna untuk menunggu beberapa saat hingga tindakan asinkron untuk mentransfer kepemilikan kelas selesai, lalu coba lagi.
CannotRemoveTeacherWithNoCourseOwner
CannotRemoveTeacherWithNoCourseOwner
menunjukkan bahwa pengajar tidak boleh
dihapus dari kursus tanpa pemilik.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan bahwa pengajar tidak boleh dihapus. Pada umumnya, akun pengguna pemilik kursus telah dihapus, sehingga menyebabkan status kursus tidak valid.
CourseMemberLimitReached
CourseMemberLimitReached
menunjukkan bahwa tindakan yang dicoba akan melebihi jumlah maksimum anggota kursus yang diizinkan. Kode ini biasanya ditampilkan oleh
students.create()
Untuk informasi lebih lanjut, lihat bagian "Batas ukuran kelas" dalam artikel pusat bantuan
Mengundang siswa ke kelas.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan pengguna untuk menghapus anggota kursus yang tidak diperlukan
CourseNotModifiable
CourseNotModifiable
menunjukkan bahwa kursus yang relevan berada dalam status yang
tidak mengizinkan propertinya diubah (selain status kursus
itu sendiri).
Kemungkinan Tindakan:
Minta pengguna untuk mengubah kursus ke
status kursus yang dapat diubah. Untuk
mengubah status, gunakan
courses.patch()
.
Status kursus dapat diubah dalam permintaan yang mengubah properti lainnya.
CourseTeacherLimitReached
CourseTeacherLimitReached
menunjukkan bahwa tindakan yang diminta akan melebihi jumlah maksimum pengajar kursus yang diizinkan. Kode ini biasanya ditampilkan
oleh teachers.create()
.
Untuk informasi lebih lanjut, lihat bagian "Batasan ukuran kelas" dalam artikel pusat bantuan
Menambahkan rekan pengajar ke kelas.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan pengguna untuk menghapus pengajar kursus yang tidak diperlukan. Jika berlaku untuk aplikasi Anda, Anda dapat menggunakan teachers.delete() untuk mengelola daftar nama pengajar atas nama pengguna.
InactiveCourseOwner
InactiveCourseOwner
menunjukkan bahwa tindakan yang diminta tidak diizinkan
karena akun pemilik kursus dihapus. Administrator pemilik kursus
harus memulihkan akun pemilik kursus sebelum mengambil tindakan
yang diminta.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan administrator untuk memulihkan akun pemilik kursus sebelum mencoba kembali operasi tersebut.
IneligibleOwner
IneligibleOwner
menunjukkan bahwa pengguna tidak dapat ditambahkan sebagai pemilik kursus karena pengguna tersebut bukan rekan pengajar.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan. Jika pengguna yang meminta bukan administrator, sarankan agar mereka terlebih dahulu mengirimkan undangan kepada pengguna tersebut untuk menjadi pengajar di kursus sebelum memperbarui pemilik. Jika pengguna yang meminta adalah administrator, sarankan agar mereka menambahkan pengguna tersebut sebagai rekan pengajar kursus terlebih dahulu.
PendingInvitationExists
PendingInvitationExists
menunjukkan bahwa seseorang telah diundang untuk mengambil
kepemilikan kursus. Error ini terjadi selama transfer kepemilikan kursus
saat transfer sebelumnya dimulai, tetapi belum diterima oleh
pemilik baru.
UserCannotOwnCourse
UserCannotOwnCourse
menunjukkan bahwa pengguna tidak dapat ditambahkan sebagai pemilik kursus.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan bahwa kursus tidak dapat dibuat dengan pengguna sebagai pemilik kursus. Pengguna yang meminta dan bukan administrator dapat melihat error ini jika mereka mencoba membuat kursus dengan pengguna selain dirinya sebagai pemilik. Administrator yang meminta pengguna mungkin melihat error ini jika akun pengguna yang ditentukan sebagai pemilik tidak ada atau pengguna tidak berada di domainnya.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
menunjukkan bahwa pengguna sudah menjadi anggota
dari jumlah maksimum grup yang diizinkan dan tidak dapat bergabung ke kursus apa pun. Kode ini
biasanya ditampilkan oleh
students.create()
atau
teachers.create()
.
Untuk informasi lebih lanjut, lihat bagian "Batasan ukuran kelas" dalam artikel pusat bantuan
Mengundang siswa ke kelas.
Kemungkinan Tindakan:
Jelaskan penyebab kegagalan dan sarankan pengguna untuk keluar dari kursus
yang tidak diikuti. Pengguna dapat mempertimbangkan untuk membuat akun tambahan
jika mereka perlu berpartisipasi dalam lebih banyak kursus. Jika berlaku untuk aplikasi Anda,
Anda dapat menggunakan students.create()
atau teachers.delete()
untuk mengelola daftar nama atas nama pengguna.
HTTP 403: PERMISSION_DENIED
Semua metode Classroom API dapat menampilkan error PERMISSION_DENIED
(HTTP 403)
jika pengguna akhir tidak memenuhi prasyarat untuk akses. Pesan
yang menyertai error berisi
pesan error untuk
membantu Anda mengidentifikasi penyebabnya dan mengarahkan pengguna untuk mengambil tindakan yang sesuai.
Bagian berikut menjelaskan pesan error Classroom API yang umum.
CannotDirectAddUser
CannotDirectAddUser
menunjukkan bahwa pengguna tidak dapat langsung ditambahkan ke kursus. Kode ini terjadi saat administrator domain mencoba menambahkan
pengguna ke kursus dan pengguna tersebut tidak memiliki alamat email atau tidak
merupakan bagian dari domain.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan administrator domain untuk memeriksa apakah akun pengguna ada dan berada dalam domain administrator kursus.
ClassroomApiDisabled
ClassroomApiDisabled
menunjukkan bahwa pengguna yang meminta tidak memiliki akses
ke Classroom API.
Kemungkinan Tindakan: Arahkan pengguna ke petunjuk tentang mengaktifkan akses data Classroom. Lihat juga ClassroomDisabled, karena pengguna mungkin menggunakan akun yang salah.
ClassroomDisabled
ClassroomDisabled
menunjukkan bahwa pengguna yang meminta tidak memiliki akses ke
Classroom.
Kemungkinan Tindakan: Arahkan pengguna ke petunjuk tentang mengaktifkan akses Classroom. Pengguna mungkin juga menggunakan akun yang salah, jadi Anda juga dapat memberikan link untuk menggunakan beberapa akun sehingga pengguna dapat memilih akun yang benar.
ExpiredAddOnToken
ExpiredAddOnToken
menunjukkan bahwa token add-on yang digunakan untuk melakukan panggilan ke
API telah habis masa berlakunya.
Kemungkinan Tindakan: Minta pengguna untuk memuat ulang halaman atau login ke add-on
lagi sehingga Anda dapat memperoleh parameter kueri addOnToken
baru dari
URL permintaan.
InvalidAddOnToken
InvalidAddOnToken
menunjukkan bahwa token add-on yang diteruskan dalam permintaan tidak
diberi otorisasi untuk membuat lampiran add-on pada tugas.
Kemungkinan Tindakan: Error ini dapat ditampilkan jika pengguna login ke add-on dengan akun yang berbeda dari akun di Classroom. Minta pengguna untuk logout dari semua akun lain di browser atau membuka Classroom di jendela Chrome samaran.
ProjectPermissionDenied
ProjectPermissionDenied
menunjukkan bahwa permintaan mencoba mengubah
resource yang terkait dengan project Konsol Play yang berbeda.
Tindakan yang Mungkin Dilakukan: Tunjukkan bahwa aplikasi Anda tidak dapat membuat permintaan yang diinginkan. Resource ini hanya dapat dibuat oleh project Developer Console dari client ID OAuth yang membuat resource.
UserIneligibleToUpdateGradingPeriodSettings
UserIneligibleToUpdateGradingPeriodSettings
menunjukkan bahwa permintaan
mencoba mengubah setelan periode penilaian di kursus tempat pengguna
yang meminta atau pemilik kursus tidak memiliki lisensi Google Workspace for
Education yang sesuai.
Kemungkinan Tindakan: Tunjukkan bahwa aplikasi Anda tidak dapat membuat permintaan yang dimaksud untuk memperbarui setelan periode penilaian karena status pemberian lisensi pengguna yang meminta atau pemilik kursus. Lisensi dapat ditetapkan di konsol Google Admin.
HTTP 429: RESOURCE_EXHAUSTED
RESOURCE_EXHAUSTED
ditampilkan saat tindakan yang diminta tidak diizinkan karena beberapa resource, seperti kuota atau kapasitas server, sudah habis. Jenis
error permintaan ini biasanya terjadi karena aplikasi Anda menghasilkan beban
yang berlebihan.
Untuk menghindari pemicuan batas ini dan meningkatkan keandalan aplikasi, gunakan mekanisme percobaan ulang. Mekanisme percobaan ulang yang valid meliputi:
Gunakan backoff eksponensial terpotong untuk mencoba ulang permintaan dan memaksimalkan throughput permintaan dalam lingkungan serentak.
Untuk menghindari tabrakan, pertimbangkan backoff eksponensial terpotong dengan jitter. Memperkenalkan jitter dapat membantu permintaan Anda berhasil lebih cepat dengan memperkenalkan penundaan acak yang menyebarkan lonjakan permintaan.
Jika aplikasi Anda menampilkan error RESOURCE_EXHAUSTED
karena batasan kuota, kirimkan permintaan peningkatan kuota. Untuk informasi lebih lanjut, lihat artikel pusat bantuan
Memantau kuota API.
UserCourseJoinRateLimitReached
UserCourseJoinRateLimitReached
menunjukkan bahwa pengguna telah bergabung
dengan jumlah kursus maksimum yang diizinkan dalam satu hari. Untuk informasi selengkapnya, lihat
bagian "Undangan dan ukuran grup" di artikel pusat bantuan
Memahami kebijakan dan batas Grup.
Kemungkinan Tindakan: Jelaskan penyebab kegagalan dan sarankan pengguna untuk menunggu satu hari sebelum bergabung ke kursus.
HTTP 500: INTERNAL
INTERNAL
menunjukkan bahwa error tidak terduga muncul saat memproses
permintaan. Error permintaan INTERNAL
juga sering kali dapat diatasi dengan menggunakan backoff
eksponensial untuk mencoba ulang permintaan. Jika error INTERNAL
berlanjut, error tersebut dapat
dilaporkan dengan melaporkan bug di
issue tracker publik Classroom API.