Bahkan developer yang paling berpengalaman pun jarang menulis kode dengan benar pada percobaan pertama, sehingga pemecahan masalah menjadi bagian penting dari proses pengembangan. Bagian ini membahas teknik untuk menemukan, memahami, dan men-debug error dalam skrip Anda.
Pesan error
Saat skrip Anda mengalami error, pesan error akan muncul dengan nomor baris. Ada dua jenis dasar error: error sintaksis dan error runtime.
Error sintaksis
Error sintaksis terjadi saat kode tidak mengikuti tata bahasa JavaScript dan terdeteksi saat Anda menyimpan skrip. Misalnya, cuplikan berikut berisi error sintaksis:
function emailDataRow(rowNumber) {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var rowData = data[rowNumber-1].join(" ";
MailApp.sendEmail('john@example.com',
'Data in row ' + rowNumber,
rowData);
}
Masalahnya adalah tidak adanya karakter ) di akhir baris 4. Saat Anda menyimpan
skrip, error berikut akan muncul:
Tidak ada ) setelah daftar argumen. (baris 4)
Error ini langsung ditemukan, sehingga mudah dipecahkan. Hanya kode yang valid yang disimpan ke project Anda.
Error runtime
Error runtime terjadi saat fungsi atau class digunakan dengan tidak benar dan terdeteksi saat skrip berjalan. Misalnya, kode berikut menyebabkan error runtime:
function emailDataRow(rowNumber) {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var rowData = data[rowNumber-1].join(" ");
MailApp.sendEmail('john',
'Data in row ' + rowNumber,
rowData);
}
Meskipun diformat dengan benar, "john" adalah alamat email yang tidak valid. Error berikut terjadi:
Email tidak valid: john (baris 5)
Error ini sulit diatasi karena data sering kali diambil dari sumber eksternal seperti spreadsheet atau formulir. Gunakan teknik penelusuran kesalahan untuk mengidentifikasi penyebabnya.
Error yang biasa terjadi
Berikut adalah daftar error umum dan penyebabnya.
Layanan terlalu sering dipanggil: <nama tindakan>
Error ini menunjukkan bahwa Anda telah melampaui kuota harian untuk suatu tindakan, seperti mengirim terlalu banyak email. Kuota bervariasi menurut jenis akun dan dapat berubah. Lihat batas di dokumentasi kuota Apps Script.
Server tidak tersedia. atau Terjadi kesalahan server, coba lagi.
Kemungkinan penyebabnya meliputi:
- Server Google tidak tersedia untuk sementara. Tunggu, lalu coba lagi.
- Error dalam skrip Anda tidak memiliki pesan yang sesuai. Coba lakukan proses debug untuk mengisolasi masalah.
- Ada bug di Google Apps Script. Cari dan ajukan laporan bug di Bug.
Otorisasi diperlukan untuk melakukan tindakan tersebut.
Skrip tidak memiliki otorisasi yang diperlukan untuk dijalankan. Saat skrip berjalan dari pemicu atau sebagai layanan, dialog otorisasi tidak dapat ditampilkan.
Untuk memberi otorisasi skrip, buka editor skrip dan jalankan fungsi apa pun. Jika skrip menggunakan layanan baru yang tidak sah, Anda harus memberikan otorisasi ulang.
Pemicu yang diaktifkan sebelum otorisasi atau setelah masa berlaku habis sering kali menyebabkan error ini. Jika add-on menyebabkan hal ini, gunakan add-on lagi untuk memberikan otorisasi ulang. Menghapus pemicu yang bermasalah:
- Di project Apps Script, klik Triggers .
- Di samping pemicu, klik Lainnya > Hapus pemicu.
Atau, uninstal add-on.
Izin terperinci juga dapat menyebabkan error ini. Lihat halaman cakupan otorisasi untuk melindungi eksekusi pemicu.
Akses ditolak: DriveApp atau Kebijakan domain telah menonaktifkan aplikasi Drive pihak ketiga
Administrator Google Workspace dapat menonaktifkan Drive API untuk domain mereka, yang mencegah pengguna menggunakan aplikasi Drive atau add-on Apps Script yang menggunakan layanan Drive.
Jika add-on atau aplikasi web dipublikasikan untuk penginstalan di seluruh domain dan diinstal oleh administrator, skrip akan berfungsi meskipun Drive API dinonaktifkan.
Skrip tidak memiliki izin untuk mendapatkan identitas pengguna aktif.
Identitas dan email pengguna aktif tidak tersedia. Hal ini disebabkan oleh panggilan
ke Session.getActiveUser()
atau Session.getEffectiveUser()
dalam mode otorisasi selain AuthMode.FULL.
Jika skrip Anda berjalan di pemicu, Anda dapat menemukan mode otorisasi di
properti authMode objek peristiwa Apps Script.
Pecahkan masalah ini berdasarkan mode otorisasi:
- Di
AuthMode.FULL, sebaiknya gunakanSession.getEffectiveUser(). - Di
AuthMode.LIMITED, pastikan pemilik telah mengizinkan skrip. - Dalam mode otorisasi lainnya, hindari memanggil salah satu metode.
- Jika Anda adalah pelanggan Google Workspace yang baru-baru ini mengalami peringatan ini dari pemicu yang dapat diinstal, pastikan pemicu berjalan sebagai pengguna dalam organisasi Anda.
Library tidak ada
Perpustakaan dapat dilaporkan sebagai tidak ada jika terlalu banyak orang mengaksesnya secara bersamaan. Untuk mengatasi hal ini:
- Salin kode library langsung ke skrip Anda.
- Salin dan deploy pustaka dari akun Anda sendiri.
- Jika library tidak diperlukan agar skrip Anda berfungsi, hapus library dari project skrip Anda.
Terjadi error karena versi deployment atau versi library tidak ada. Kode error Not_Found
Pesan error ini menunjukkan salah satu hal berikut:
- Versi skrip yang digunakan oleh deployment telah dihapus. Untuk mengatasi masalah ini, edit deployment dan pilih versi skrip yang berbeda.
- Versi library yang digunakan oleh skrip telah dihapus. Untuk menyelesaikannya, di editor skrip pada bagian "Library", temukan library dan update ke versi lain atau hapus library. Untuk mengupdate, klik nomor versi, lalu pilih versi lain. Untuk menghapus, klik Lainnya > Hapus.
- Library menyertakan library lain, dan versi library tersebut telah dihapus. Untuk mengatasinya, hubungi pembuat library atau gunakan versi library lain yang digunakan skrip Anda.
Error 400: invalid_scope saat memanggil Google Chat API dengan layanan lanjutan
Jika Anda mengalami Error 400: invalid_scope dengan pesan error
Some requested scopes cannot be shown,
artinya Anda belum menentukan cakupan otorisasi apa pun dalam file
appsscript.json project Apps Script. Dalam sebagian besar kasus,
Apps Script otomatis menentukan cakupan yang diperlukan skrip,
tetapi saat Anda menggunakan layanan lanjutan Chat, Anda harus menambahkan
cakupan otorisasi yang digunakan skrip secara manual ke
file manifes project Apps Script Anda. Lihat
Menetapkan cakupan eksplisit.
Untuk mengatasi error, tambahkan cakupan otorisasi yang sesuai
ke file appsscript.json project Apps Script sebagai bagian dari
array oauthScopes. Misalnya, untuk memanggil metode
spaces.messages.create, tambahkan kode berikut:
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
Panggilan UrlFetch ke <URL> tidak diizinkan oleh admin Anda
Administrator Google Workspace dapat menggunakan daftar yang diizinkan untuk mengontrol akses domain eksternal. Hubungi administrator Anda untuk menambahkan URL ke daftar yang diizinkan.
Proses debug
Beberapa error tidak terlihat jelas dan tidak memicu pesan. Misalnya, kode Anda mungkin dapat dieksekusi, tetapi hasilnya tidak terduga. Gunakan strategi berikut untuk menyelidiki skrip yang berperilaku tidak terduga.
Logging
Merekam informasi saat skrip dieksekusi menggunakan layanan Cloud Logging atau layanan Logger dan konsol di editor skrip.
Error Reporting
Untuk menggunakan Error Reporting di Google Cloud, gunakan project standar yang dikelola pengguna, bukan project default.
Saat Anda menggunakan project standar, error runtime akan otomatis dicatat di Google Cloud Error Reporting. Melihat log Cloud dan laporan error di Konsol Google Cloud.
Eksekusi
Google Apps Script mencatat setiap eksekusi, termasuk log Cloud. Untuk melihat eksekusi, klik Eksekusi .
Memeriksa status layanan
Periksa gangguan layanan Google Workspace di Dasbor Status Google Workspace.
Menggunakan debugger dan titik henti sementara
Untuk menemukan masalah dalam skrip, Anda dapat menjalankannya dalam mode debug. Saat dijalankan dalam mode debug, skrip akan dijeda saat mencapai titik henti sementara, yaitu baris yang telah Anda tandai dalam skrip yang menurut Anda mungkin bermasalah. Saat skrip dijeda, skrip akan menampilkan nilai setiap variabel pada saat itu, sehingga Anda dapat memeriksa cara kerja internal skrip tanpa harus menambahkan banyak pernyataan logging.
Menambahkan titik henti sementara
Untuk menambahkan titik henti sementara, arahkan kursor ke nomor baris yang ingin Anda tambahi titik henti sementara. Di sebelah kiri nomor baris, klik lingkaran. Gambar di bawah menampilkan contoh titik henti sementara yang ditambahkan ke skrip:

Menjalankan skrip dalam mode debug
Untuk menjalankan skrip dalam mode debug, klik Debug di bagian atas editor.
Sebelum skrip menjalankan baris dengan titik henti, skrip akan berhenti dan menampilkan tabel informasi debug. Anda dapat menggunakan tabel ini untuk memeriksa data seperti nilai parameter dan informasi yang disimpan dalam objek.
Untuk mengontrol cara skrip dijalankan, di bagian atas panel Debugger, gunakan tombol "Step in", "Step over", dan "Step out". Dengan ini, Anda dapat menjalankan skrip satu baris dalam satu waktu dan memeriksa perubahan nilai dari waktu ke waktu.
Error: Kode sumber untuk baris saat ini tidak tersedia

Error ini muncul saat file penelusuran aktif tidak tersedia.
Google Apps Script tidak mendukung menampilkan skrip JavaScript (JS) yang dibuat secara dinamis di editor skrip, seperti yang dibuat menggunakan
eval() dan new Function(). Skrip ini dibuat dan dieksekusi
dalam mesin V8, tetapi tidak ditampilkan sebagai file mandiri di editor.
Jika Anda menelusuri skrip ini, Anda akan mengalami error ini.
Misalnya, pertimbangkan kode berikut:
function myFunction() {
eval('a=2');
}
Saat eval() dipanggil, argumennya diperlakukan sebagai kode JS dan berjalan sebagai skrip yang dibuat secara dinamis di dalam mesin V8. Jika Anda menelusuri eval(), error ini akan muncul. Jika skrip menyertakan komentar //# sourceURL, namanya
ditampilkan di stack panggilan. Jika tidak, entri akan muncul sebagai entri tanpa nama.
Meskipun ada pesan error, sesi pen-debug-an tetap aktif, dan eksekusi dapat dilanjutkan. Untuk melanjutkan, teruskan ke langkah masuk, keluar, atau lanjutkan eksekusi. Namun, error ini akan terus muncul selama eksekusi tetap berada dalam cakupan skrip dinamis. Setelah eksekusi keluar dari skrip dinamis, proses debug akan berlanjut tanpa error ini.
Masalah terkait beberapa Akun Google
Jika login ke beberapa Akun Google secara bersamaan, Anda mungkin mengalami masalah saat mengakses add-on dan aplikasi web. Multi-login, atau login ke beberapa Akun Google sekaligus, tidak didukung untuk Apps Script, add-on, atau aplikasi web.
Jika Anda membuka editor Apps Script saat login ke lebih dari satu akun, Google akan meminta Anda memilih akun yang ingin Anda gunakan untuk melanjutkan.
Jika Anda membuka aplikasi web atau add-on dan mengalami masalah multi-login, coba salah satu solusi berikut:
- Logout dari semua Akun Google Anda dan hanya login ke akun yang memiliki add-on atau aplikasi web yang ingin Anda akses.
- Buka jendela samaran di Google Chrome, atau jendela penjelajahan rahasia yang setara, dan login ke Akun Google yang memiliki add-on atau aplikasi web yang ingin Anda akses.
Mendapatkan bantuan
Buka halaman Dukungan kami untuk mengajukan pertanyaan atau melaporkan bug.