Terkadang beberapa kode error dapat terjadi. Layanan seharusnya menampilkan kode error paling spesifik yang berlaku. Misalnya, lebih memilih menampilkan OUT_OF_RANGE daripada FAILED_PRECONDITION jika kedua kode berlaku. Demikian pula, untuk lebih memilih menampilkan NOT_FOUND atau ALREADY_EXISTS daripada FAILED_PRECONDITION.
Enum
OK
Bukan error; ditampilkan jika berhasil.
Pemetaan HTTP: 200 OK
CANCELLED
Operasi dibatalkan, biasanya oleh pemanggil.
Pemetaan HTTP: 499 Client Closed Request
UNKNOWN
Error tidak diketahui. Misalnya, error ini dapat ditampilkan jika nilai Status yang diterima dari ruang alamat lain yang berada di ruang error yang tidak diketahui di ruang alamat ini. Selain itu, error yang dilaporkan oleh API yang tidak menampilkan informasi error yang mencukupi dapat dianggap sebagai error ini.
Pemetaan HTTP: Error Server Internal 500
INVALID_ARGUMENT
Klien menetapkan argumen yang tidak valid. Perhatikan bahwa ini berbeda dengan FAILED_PRECONDITION. INVALID_ARGUMENT menyatakan argumen yang bermasalah, terlepas dari keadaannya di dalam sistem (misalnya, nama file yang salah format).
Pemetaan HTTP: 400 Permintaan Tidak Valid
DEADLINE_EXCEEDED
Batas waktu berakhir sebelum operasi selesai. Untuk operasi yang mengubah keadaan sistem, error ini mungkin ditampilkan, bahkan jika, operasi tersebut telah selesai. Sebagai contoh, respons berhasil dari suatu server dapat tertunda selama waktu yang cukup lama hingga tenggat waktu berakhir.
Pemetaan HTTP: 504 Gateway Timeout
NOT_FOUND
Beberapa entity yang diminta (misalnya, file atau direktori) tidak ditemukan.
Catatan bagi developer server: apabila suatu permintaan ditolak pada seluruh kelas pengguna, seperti peluncuran bertahap, atau daftar yang diberi akses, NOT_FOUND dapat digunakan. Jika permintaan ditolak pada beberapa pengguna di dalam suatu kelas pengguna, seperti pada kontrol akses basis pengguna, maka, PERMISSION_DENIED harus digunakan.
Pemetaan HTTP: 404 Not Found
ALREADY_EXISTS
Entitas yang coba dibuat oleh klien (misalnya, file atau direktori) sudah ada.
Pemetaan HTTP: 409 Conflict
PERMISSION_DENIED
Pemanggil tidak memiliki izin untuk menjalankan operasi yang ditentukan. PERMISSION_DENIED tidak boleh digunakan untuk penolakan yang disebabkan oleh kehabisan beberapa resource (gunakan RESOURCE_EXHAUSTED untuk error tersebut). PERMISSION_DENIED tidak boleh digunakan apabila pemanggil tidak dapat diidentifikasi (gunakan UNAUTHENTICATED untuk error tersebut). Kode error ini tidak menyatakan bahwa suatu permintaan valid atau entitas yang diminta ada atau memenuhi prakondisi lainnya.
Pemetaan HTTP: 403 Forbidden
UNAUTHENTICATED
Permintaan tidak memiliki kredensial autentikasi operasi yang valid.
Pemetaan HTTP: 401 Tidak Sah
RESOURCE_EXHAUSTED
Beberapa resource telah habis, kemungkinan adalah kuota per pengguna, atau kemungkinan seluruh sistem file kehabisan ruang.
Pemetaan HTTP: 429 Too Many Requests
FAILED_PRECONDITION
Operasi tersebut ditolak karena sistem tidak dalam keadaan dibutuhkan untuk menjalankan operasi. Misalnya, direktori yang akan dihapus tidak kosong, operasi rmdir diterapkan pada non-direktori, dll.
Pelaksana layanan dapat menggunakan panduan berikut untuk menentukan manakah yang paling sesuai di antara FAILED_PRECONDITION, ABORTED, dan UNAVAILABLE: (a) Gunakan UNAVAILABLE apabila klien dapat mencoba kembali panggilan yang gagal sesegera mungkin. (b) Gunakan ABORTED jika klien harus mencoba lagi pada tingkat yang lebih tinggi. Misalnya, saat kegagalan test-and-set, yang menunjukkan bahwa klien harus memulai ulang urutan baca-ubah-tulis. (c) Gunakan FAILED_PRECONDITION jika klien tidak diizinkan untuk mencoba kembali hingga status sistem diperbaiki secara eksplisit. Misalnya, jika "rmdir" gagal karena direktori tidak kosong, FAILED_PRECONDITION akan ditampilkan karena klien tidak diizinkan untuk mencoba kembali kecuali jika file dihapus dari direktori.
Pemetaan HTTP: 400 Permintaan Tidak Valid
ABORTED
Operasi dibatalkan, umumnya karena masalah konkurensi seperti kegagalan pemeriksaan pengurut atau pembatalan transaksi.
Lihat panduan di atas untuk menentukan manakah yang sesuai antara FAILED_PRECONDITION, ABORTED, dan UNAVAILABLE.
Pemetaan HTTP: 409 Conflict
OUT_OF_RANGE
Upaya operasi dilakukan melampaui rentang yang valid. Mis., mencari tahu atau membaca melampaui akhir file.
Tidak seperti INVALID_ARGUMENT, error ini menunjukkan masalah yang dapat diperbaiki jika status sistem berubah. Misalnya, sistem file 32-bit akan menghasilkan INVALID_ARGUMENT jika diminta untuk membaca pada offset yang tidak berada dalam rentang [0,2^32-1], tetapi akan menghasilkan OUT_OF_RANGE jika diminta untuk membaca dari offset melewati ukuran file saat ini.
Terdapat sedikit tumpang-tindih antara FAILED_PRECONDITION dengan OUT_OF_RANGE. Sebaiknya gunakan OUT_OF_RANGE (error yang lebih spesifik) jika memang sesuai, sehingga pemanggil yang melakukan iterasi melalui ruang dapat dengan mudah mencari error OUT_OF_RANGE untuk dideteksi ketika selesai.
Pemetaan HTTP: 400 Permintaan Tidak Valid
UNIMPLEMENTED
Operasi tidak diterapkan atau tidak didukung/diaktifkan dalam layanan ini.
Pemetaan HTTP: 501 Not Implemented
INTERNAL
Error internal. Artinya beberapa invarian yang diperlukan oleh sistem pokok telah rusak. Kode error ini disediakan untuk error yang bersifat serius.
Pemetaan HTTP: Error Server Internal 500
UNAVAILABLE
Saat ini layanan tidak tersedia. Kemungkinan besar ini hanya kondisi sementara, yang dapat diperbaiki dengan mencoba kembali menggunakan backoff. Perlu diketahui bahwa mencoba kembali operasi non-idempoten tidak selalu aman.
Lihat panduan di atas untuk menentukan manakah yang sesuai antara FAILED_PRECONDITION, ABORTED, dan UNAVAILABLE.
Pemetaan HTTP: 503 Layanan Tidak Tersedia
DATA_LOSS
Data hilang atau rusak yang tidak dapat dipulihkan.
Pemetaan HTTP: Error Server Internal 500
Status
Jenis Status menentukan model error logis yang cocok untuk berbagai lingkungan pemrograman, meliputi REST API dan RPC API. Jenis error ini digunakan oleh gRPC. Setiap pesan Status berisi tiga bagian data: kode error, pesan error, dan detail error.
Anda dapat mencari tahu lebih lanjut tentang model error ini dan cara penanganannya di Panduan Desain API.
Pesan error yang ditampilkan ke developer dan seharusnya dalam bahasa Inggris. Setiap pesan error yang ditampilkan kepada pengguna harus dilokalkan dan dikirim di kolom google.rpc.Status.details, atau dilokalkan oleh klien.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-31 UTC."],[[["\u003cp\u003eThe document defines \u003ccode\u003eCode\u003c/code\u003e, an enum for canonical error codes used in gRPC APIs, and advises selecting the most specific error code when multiple codes apply.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eCode\u003c/code\u003e enum includes various error types like \u003ccode\u003eOK\u003c/code\u003e, \u003ccode\u003eCANCELLED\u003c/code\u003e, \u003ccode\u003eUNKNOWN\u003c/code\u003e, \u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e, \u003ccode\u003eNOT_FOUND\u003c/code\u003e, \u003ccode\u003ePERMISSION_DENIED\u003c/code\u003e, \u003ccode\u003eUNAUTHENTICATED\u003c/code\u003e, \u003ccode\u003eRESOURCE_EXHAUSTED\u003c/code\u003e, \u003ccode\u003eINTERNAL\u003c/code\u003e, and more, each with a brief description and HTTP mapping.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eStatus\u003c/code\u003e message type provides a structured way to communicate errors, containing a status \u003ccode\u003ecode\u003c/code\u003e, a developer-facing \u003ccode\u003emessage\u003c/code\u003e, and a list of \u003ccode\u003edetails\u003c/code\u003e for additional context.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eStatus\u003c/code\u003e error messages use a numerical code, a textual message, and can include additional details to thoroughly describe errors in various programming environments.\u003c/p\u003e\n"]]],[],null,["# Package google.rpc\n\nIndex\n-----\n\n- [Code](/distributed-cloud/hosted/docs/latest/gdch/apis/vertex-ai/ocr/rpc/google.rpc#google.rpc.Code) (enum)\n- [Status](/distributed-cloud/hosted/docs/latest/gdch/apis/vertex-ai/ocr/rpc/google.rpc#google.rpc.Status) (message)\n\nCode\n----\n\nThe canonical error codes for gRPC APIs.\n\nSometimes multiple error codes may apply. Services should return the most specific error code that applies. For example, prefer `OUT_OF_RANGE` over `FAILED_PRECONDITION` if both codes apply. Similarly prefer `NOT_FOUND` or `ALREADY_EXISTS` over `FAILED_PRECONDITION`.\n\nStatus\n------\n\nThe `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors)."]]