Topik ini mencantumkan kesalahan umum yang dikembalikan oleh Tablestore, dikelompokkan berdasarkan kategori: verifikasi izin, pesan HTTP, operasi API, dan kesalahan server. Gunakan kode kesalahan, kode status HTTP, serta pesan kesalahan untuk mengidentifikasi dan menyelesaikan masalah.
Kolom Retry menunjukkan apakah permintaan ulang dapat mengatasi kesalahan tersebut. "Yes" berarti kesalahan bersifat sementara dan mencoba ulang dengan exponential backoff kemungkinan berhasil. "No" berarti Anda harus memperbaiki akar permasalahan sebelum mencoba ulang.
Cara menggunakan referensi ini
Saat aplikasi Anda menerima kesalahan dari Tablestore:
Temukan kode kesalahan (berawalan OTS) dalam tabel di bawah ini.
Periksa kode status HTTP untuk mengonfirmasi kategori kesalahan.
Baca deskripsi guna memahami akar penyebab dan cara penyelesaiannya.
Periksa kolom Retry untuk menentukan apakah aplikasi Anda perlu mencoba ulang permintaan tersebut.
Singkatan utama yang digunakan dalam dokumen ini:
Capacity unit (CU): Satuan pengukuran throughput baca dan tulis di Tablestore.
Time to live (TTL): Durasi penyimpanan data sebelum kedaluwarsa secara otomatis.
Kesalahan verifikasi izin
Semua kesalahan verifikasi izin mengembalikan kode status HTTP 403 dan tidak dapat dicoba ulang. Perbaiki kredensial, izin, atau konfigurasi jaringan sebelum mencoba ulang.
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 403 | OTSAuthFailed | AccessKeyID tidak tersedia. | ID AccessKey tidak ada. Verifikasi bahwa ID AccessKey benar. | No |
| 403 | OTSAuthFailed | AccessKeyID dinonaktifkan. | ID AccessKey dinonaktifkan. Aktifkan di Konsol Alibaba Cloud atau gunakan yang lain. | No |
| 403 | OTSAuthFailed | Pengguna tidak ada. | Pengguna yang ditentukan tidak ada. Verifikasi bahwa akun Pengguna RAM valid. | No |
| 403 | OTSAuthFailed | Instans tidak ditemukan. | Instans yang ditentukan tidak ada. Verifikasi nama instans dan wilayahnya. | No |
| 403 | OTSAuthFailed | Pengguna tidak memiliki hak istimewa untuk mengakses instans. | Anda tidak memiliki izin untuk mengakses instans tersebut. Berikan izin yang diperlukan kepada Pengguna RAM. | No |
| 403 | OTSAuthFailed | Instans tidak sedang berjalan. | Instans tidak dalam status Running. Periksa status instans di Konsol Tablestore. | No |
| 403 | OTSAuthFailed | Signature mismatch. | Signature permintaan tidak sesuai dengan signature yang Anda berikan. Verifikasi AccessKey Secret dan algoritma penandatanganan. | No |
| 403 | OTSAuthFailed | Perbedaan antara waktu sistem dan x-ots-date: {Date}. | Selisih antara waktu server dan waktu yang ditentukan oleh parameter x-ots-date melebihi batas yang diizinkan. Sinkronkan jam sistem Anda. | No |
| 403 | OTSAuthFailed | Permintaan ditolak oleh kebijakan ACL instans. | Permintaan ditolak karena tipe jaringan client tidak diizinkan oleh instans. Untuk informasi lebih lanjut, lihat pengecualian "Request denied by instance ACL policies" yang terjadi saat Anda menggunakan SDK Tablestore untuk mengakses Tablestore. | No |
| 403 | OTSNoPermissionAccess | Anda tidak memiliki izin untuk mengakses resource yang diminta, silakan hubungi pemilik resource | Anda tidak memiliki izin untuk mengelola resource tersebut. Hubungi pemilik resource untuk otorisasi. Untuk informasi lebih lanjut, lihat Gunakan kebijakan RAM untuk memberikan izin kepada Pengguna RAM. | No |
Kesalahan pesan HTTP
Kesalahan ini menunjukkan adanya masalah pada permintaan HTTP itu sendiri, seperti header tidak valid, metode tidak didukung, atau batas ukuran permintaan. Semua kesalahan pesan HTTP tidak dapat dicoba ulang.
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 413 | OTSRequestBodyTooLarge | Ukuran data POST terlalu besar. | Badan permintaan POST melebihi batas ukuran. Kurangi ukuran badan permintaan. | No |
| 408 | OTSRequestTimeout | Request timeout. | Permintaan mengalami timeout di sisi client. Periksa konektivitas jaringan dan tingkatkan pengaturan timeout jika diperlukan. | No |
| 405 | OTSMethodNotAllowed | OTSMethodNotAllowedOnly POST method for requests is supported. | Metode permintaan tidak didukung. Hanya permintaan POST yang didukung. | No |
| 403 | OTSAuthFailed | Perbedaan antara nilai MD5 badan permintaan dan x-ots-contentmd5 di header. | Nilai MD5 yang dihitung dari badan permintaan berbeda dengan nilai yang ditentukan oleh x-ots-contentmd5 di header permintaan. Hitung ulang hash MD5. | No |
| 400 | OTSParameterInvalid | Header hilang: {HeaderName}. | Header yang wajib tidak ada. Tambahkan header yang ditentukan ke permintaan. | No |
| 400 | OTSParameterInvalid | Format tanggal tidak valid: {Date}. | Format tanggal tidak valid. Gunakan format tanggal yang valid. | No |
| 400 | OTSParameterInvalid | Operasi tidak didukung: {Operation}. | Nama operasi dalam URL permintaan tidak valid. Verifikasi nama operasi. | No |
| 400 | OTSParameterInvalid | Tidak dapat memesan capacity unit baca pada kapasitas. | Throughput baca atau tulis yang dipesan tidak dapat ditentukan untuk tabel di instans kapasitas. | No |
| 400 | OTSForbiddenUpdateCapacityUnit | Instans Anda dilarang memperbarui capacity unit. | Throughput baca atau tulis yang dipesan tidak dapat diperbarui untuk tabel di instans kapasitas. | No |
Kesalahan operasi API
Kesalahan ini terjadi selama operasi API Tablestore. Sebagian besar disebabkan oleh parameter tidak valid (HTTP 400) dan tidak dapat dicoba ulang. Perbaiki parameter permintaan berdasarkan pesan kesalahan.
Kesalahan HTTP 500
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 500 | OTSInternalServerError | Internal server error. | Terjadi kesalahan internal. Jika kesalahan tetap berlanjut setelah beberapa kali mencoba ulang, kirim tiket. | Yes |
Kesalahan HTTP 403
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 403 | OTSQuotaExhausted | Operasi tabel terlalu sering. | Frekuensi operasi tabel melebihi ambang batas. Tunggu dan coba ulang. | Yes |
| 403 | OTSQuotaExhausted | Jumlah tabel melebihi kuota. | Jumlah maksimum tabel telah tercapai. Hapus tabel yang tidak digunakan atau minta peningkatan kuota. | No |
Kesalahan HTTP 400: validasi tabel dan kolom
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Nama instans tidak valid: {InstanceName}. | Nama instans yang ditentukan tidak valid. | No |
| 400 | OTSParameterInvalid | Nama tabel tidak valid: {TableName}. | Nama tabel yang ditentukan tidak valid. | No |
| 400 | OTSParameterInvalid | Nama kolom tidak valid: {ColumnName}. | Nama kolom yang ditentukan tidak valid. | No |
| 400 | OTSParameterInvalid | {ColumnType} adalah tipe yang tidak valid untuk kunci primer. | Tipe kolom kunci primer tidak valid. | No |
| 400 | OTSParameterInvalid | {ColumnType} adalah tipe yang tidak valid untuk kolom atribut. | Tipe kolom atribut tidak valid. | No |
| 400 | OTSParameterInvalid | Jumlah kolom kunci primer harus dalam rentang: [1, {Limit}]. | Jumlah kolom kunci primer adalah 0 atau melebihi batas. | No |
| 400 | OTSParameterInvalid | Nilai kolom {ColumnName} harus menggunakan encoding UTF8. | Nilai kolom tidak di-encode dalam UTF-8. | No |
| 400 | OTSParameterInvalid | Panjang kolom atribut: {ColumnName} melebihi MaxLength:{MaxSize} dengan Panjang Saat Ini:{CellSize}. | Nama kolom atribut melebihi panjang maksimum. | No |
| 400 | OTSParameterInvalid | Nama kunci primer duplikat: '{PKName}'. | Terdapat kunci primer duplikat. | No |
| 400 | OTSParameterInvalid | Nama kolom atribut duplikat dengan kolom kunci primer: {ColumnName}. | Nama kolom atribut sama dengan nama kolom kunci primer dalam baris tersebut. | No |
| 400 | OTSParameterInvalid | Jumlah kolom atribut melebihi batas, batas jumlah:{Limit}, jumlah kolom: {Count}. | Jumlah kolom atribut melebihi batas. | No |
| 400 | OTSParameterInvalid | Panjang kolom kunci primer: {ColumnName} melebihi MaxLength: {Limit} dengan PanjangSaatIni: {Current}. | Panjang kunci primer melebihi maksimum. | No |
| 400 | OTSParameterInvalid | Tidak ada nama yang diberikan untuk kunci primer. | Tidak ada nama yang ditentukan untuk kolom kunci primer. | No |
| 400 | OTSParameterInvalid | Tidak ada nilai yang diberikan untuk nama kunci primer:{PkName}. | Tidak ada nilai yang ditentukan untuk kolom kunci primer. | No |
| 400 | OTSParameterInvalid | OpType tidak dapat diberikan untuk nama kunci primer :{PkName}. | Tipe operasi ditentukan untuk kunci primer. Anda tidak dapat menentukan tipe operasi untuk kunci primer. | No |
| 400 | OTSParameterInvalid | Timestamp tidak dapat diberikan untuk nama kunci primer:{PkName}. | Timestamp ditentukan untuk kunci primer. Anda tidak dapat menentukan timestamp untuk kunci primer. | No |
| 400 | OTSParameterInvalid | Nama kunci primer duplikat: {PkName}. | Terdapat kunci primer duplikat. | No |
| 400 | OTSParameterInvalid | Tidak ada nama yang diberikan untuk kolom atribut. | Tidak ada nama kolom atribut yang ditentukan. | No |
| 400 | OTSParameterInvalid | Tidak ada nilai yang diberikan untuk nama kolom. | Tidak ada nilai kolom atribut yang ditentukan. | No |
| 400 | OTSParameterInvalid | Kolom atribut tidak ada. | Tidak ada kolom atribut yang ditentukan. | No |
| 400 | OTSParameterInvalid | nama kolom tidak valid: nama kosong. | Nama kolom atribut kosong. | No |
| 400 | OTSParameterInvalid | Tipe kolom tidak valid, hanya STRING,INTEGER,BINARY yang diizinkan. | Tipe kolom tidak valid. Kolom kunci primer hanya mendukung tipe STRING, INTEGER, dan BINARY. | No |
| 400 | OTSParameterInvalid | Tipe kolom tidak valid: {ColumnType}. | Tipe kolom tidak valid. | No |
| 400 | OTSParameterInvalid | double tidak dapat digunakan sebagai kunci primer. | Tipe Double tidak dapat digunakan untuk kunci primer. | No |
| 400 | OTSParameterInvalid | Kolom tidak ada:{ColumnName}. | Kolom yang ditentukan tidak ada. | No |
| 400 | OTSParameterInvalid | Jumlah kolom dari permintaan melebihi batas, batas jumlah: {Limit} , jumlah kolom:{current}. | Jumlah kolom dalam permintaan melebihi batas. | No |
| 400 | OTSParameterInvalid | Jumlah kolom pradefinisi harus dalam rentang: [0, 32]. | Jumlah kolom pradefinisi melebihi 32. | No |
| 400 | OTSParameterInvalid | Ukuran kolom PK tidak sama untuk semua baris dalam tabel: {TableName}. | Baris yang berbeda memiliki jumlah kolom kunci primer yang berbeda. | No |
| 400 | OTSInvalidPK | Skema kunci primer tidak cocok. | Kunci primer yang ditentukan tidak sesuai dengan kunci primer tabel data. | No |
| 400 | OTSOutOfRowSizeLimit | Total ukuran data kolom dalam satu baris melebihi batas. | Total ukuran data semua kolom dalam baris melebihi batas. | No |
| 400 | OTSOutOfColumnCountLimit | Jumlah kolom dalam satu baris melebihi batas. | Jumlah kolom dalam baris melebihi batas. | No |
Kesalahan HTTP 400: kunci primer auto-increment
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Kunci primer AUTO_INCREMENT harus integer. | Hanya kolom bertipe INTEGER yang dapat diatur sebagai kolom kunci primer auto-increment. | No |
| 400 | OTSParameterInvalid | Jumlah kunci primer AUTO_INCREMENT harus <= 1. | Anda hanya dapat menentukan satu kolom kunci primer auto-increment. | No |
| 400 | OTSParameterInvalid | Kolom kunci primer pertama tidak boleh auto increment, tabel: {TableName}. | Kolom kunci primer pertama tidak dapat menjadi kolom kunci primer auto-increment. | No |
| 400 | OTSParameterInvalid | PkAutoIncr tidak dapat diatur sebagai kolom pk pertama. | Kolom kunci primer auto-increment tidak dapat menjadi kolom kunci primer pertama. | No |
| 400 | OTSParameterInvalid | jumlah kunci primer auto-incremental tidak boleh lebih dari 1. | Anda hanya dapat menentukan satu kolom kunci primer auto-increment. | No |
| 400 | OTSParameterInvalid | Pk auto increment harus integer, nama: {PkName}. | Kolom kunci primer auto-increment bukan bertipe INTEGER. | No |
| 400 | OTSParameterInvalid | {Count} pk auto increment ada dalam baris. | Lebih dari satu kolom kunci primer auto-increment ada. | No |
| 400 | OTSParameterInvalid | PKAutoIncr tidak dapat digunakan untuk operasi baca. | Anda tidak dapat menentukan atribut kolom kunci primer auto-increment untuk operasi baca. | No |
| 400 | OTSParameterInvalid | Baris yang tidak valid untuk dihapus yang memiliki pk auto increment. | Anda tidak dapat menentukan atribut kolom kunci primer auto-increment untuk operasi hapus. | No |
| 400 | OTSParameterInvalid | Expect tidak valid:{RowExpect} saat memodifikasi baris dengan pk auto increment. | Kondisi keberadaan tidak valid untuk baris dengan kolom kunci primer auto-increment. | No |
| 400 | OTSParameterInvalid | Tidak dapat mengatur kondisi saat memodifikasi baris dengan pk auto increment. | Anda tidak dapat mengonfigurasi pembaruan bersyarat untuk baris dengan kolom kunci primer auto-increment. | No |
| 400 | OTSParameterInvalid | Expect tidak valid: {RowExpect} saat memodifikasi baris tertentu untuk tabel dengan pk auto increment. | Kondisi keberadaan baris yang akan dimodifikasi dalam tabel dengan kolom kunci primer auto-increment tidak valid. | No |
Kesalahan HTTP 400: operasi baris (PutRow, UpdateRow, DeleteRow)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | OpType tidak dapat diberikan untuk nama kolom:{ColumnName} dalam PutRow. | Tipe operasi ditentukan untuk PutRow. Anda hanya dapat menentukan tipe operasi untuk UpdateRow. | No |
| 400 | OTSParameterInvalid | Nilai kolom tidak dapat diberikan saat tipe adalah DELETE_ONE_VERSION,DELETE_ALL_VERSION. | Nilai kolom atribut tidak dapat ditentukan untuk operasi hapus seperti DELETE_ONE_VERSION atau DELETE_ALL_VERSION. | No |
| 400 | OTSParameterInvalid | Timestamp harus diberikan saat tipe adalah DELETE_ONE_VERSION. | Nomor versi tidak ditentukan. Untuk menghapus versi, tentukan nomor versi. | No |
| 400 | OTSParameterInvalid | Timestamp tidak dapat diberikan saat tipe adalah DELETE_ALL_VERSION. | Nomor versi ditentukan. Untuk menghapus semua versi, jangan tentukan nomor versi. | No |
| 400 | OTSParameterInvalid | Sel tidak valid: {Cell}. timestamp hilang. | Timestamp tidak ditentukan. | No |
| 400 | OTSParameterInvalid | Timestamp sel tidak valid: {Timestamp}. Diharapkan: [0, Version::kMax.mVersion / kUsecPerMsec].. | Timestamp yang ditentukan tidak valid. | No |
| 400 | OTSParameterInvalid | Timestamp tidak valid. Sel:{CellName}. | Data hanya dapat ditulis ketika timestamp yang ditentukan dalam milidetik dibagi 1000 berada dalam rentang versi yang valid. Rentang versi yang valid dihitung menggunakan rumus berikut: Valid version range = [max{Data written time - Max version offset, Data written time - TTL value}, Data written time + Max version offset) | No |
| 400 | OTSParameterInvalid | Timestamp tidak valid untuk sel: {Timestamp}. timestamp tidak berlaku untuk DELETE_ALL_VERSION. | Versi ditentukan saat menggunakan DELETE_ALL_VERSION untuk menghapus semua versi. Jangan tentukan versi dengan DELETE_ALL_VERSION. | No |
| 400 | OTSParameterInvalid | Tipe op sel tidak valid: {OpType}. | Tipe operasi tidak valid. | No |
| 400 | OTSParameterInvalid | Sel tidak valid: {Cell}. Alasan: nilai hilang. | Nilai sel tidak ditentukan. | No |
| 400 | OTSParameterInvalid | Permintaan hapus baris tidak valid: RowDeleteMarker tidak ada dalam permintaan. | RowDeleteMarker tidak disertakan dalam permintaan hapus. | No |
| 400 | OTSParameterInvalid | Permintaan put/update baris tidak valid: RowDeleteMarker tidak terduga dalam permintaan. | RowDeleteMarker disertakan dalam PutRow atau UpdateRow. Jangan sertakan RowDeleteMarker dalam PutRow atau UpdateRow. | No |
| 400 | OTSParameterInvalid | Permintaan update baris tidak valid: sel tidak ada dalam permintaan. | Nilai kolom atribut tidak ditentukan dalam UpdateRow. | No |
| 400 | OTSParameterInvalid | Permintaan hapus baris tidak valid: sel tidak terduga dalam permintaan. | Nilai kolom atribut ditentukan dalam DeleteRow. Jangan tentukan nilai kolom atribut dalam DeleteRow. | No |
| 400 | OTSParameterInvalid | Permintaan put baris tidak valid: menemukan sel tanpa nilai. | Nilai kolom atribut tidak ditentukan dalam PutRow. | No |
| 400 | OTSParameterInvalid | Aksi tidak valid: {Action}. | Tipe operasi tidak valid. | No |
| 400 | OTSParameterInvalid | Ekspektasi keberadaan baris tidak valid: {Expectation}. | Kondisi keberadaan baris tidak valid. | No |
| 400 | OTSParameterInvalid | Kolom atribut tidak dapat diberikan saat membaca data. | Jangan tentukan nilai kolom atribut untuk operasi baca. | No |
| 400 | OTSParameterInvalid | Delete marker tidak dapat diberikan. | Operasi ini tidak mendukung parameter DeleteMarker. Hanya operasi hapus yang mendukung DeleteMarker. | No |
Kesalahan HTTP 400: operasi batch (BatchGetRow, BatchWriteRow)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Tidak ada baris yang ditentukan dalam permintaan BatchGetRow. | Tidak ada baris yang ditentukan untuk operasi BatchGetRow. | No |
| 400 | OTSParameterInvalid | Nama tabel duplikat: {TableName}. | Tabel dengan nama yang sama ditentukan untuk operasi BatchGetRow atau BatchWriteRow. | No |
| 400 | OTSParameterInvalid | Jumlah baris melebihi batas atas:{limit}. | Jumlah baris melebihi batas tulis untuk tabel. | No |
| 400 | OTSParameterInvalid | Tidak ada baris yang ditentukan dalam BatchWriteRow. | Tidak ada baris yang ditentukan untuk operasi BatchWriteRow. Tentukan minimal satu baris. | No |
| 400 | OTSParameterInvalid | Tidak ada operasi yang ditentukan untuk tabel:{TableName}. | Tidak ada operasi yang ditentukan untuk tabel dalam operasi BatchWriteRow. | No |
| 400 | OTSParameterInvalid | Tipe baris dalam operasi batch write tidak valid. | Tipe baris dalam operasi BatchWriteRow tidak valid. | No |
| 400 | OTSParameterInvalid | Tipe modifikasi tidak valid. | Tipe operasi dalam operasi BatchWriteRow tidak valid. Hanya tipe operasi PUT, UPDATE, dan DELETE yang didukung. | No |
| 400 | OTSParameterInvalid | Total ukuran data permintaan BatchWriteRow melebihi batas, ukuran batas: {LimitSize}, ukuran data:{UserSize}. | Ukuran data permintaan BatchWriteRow melebihi batas. | No |
| 400 | OTSParameterInvalid | Total ukuran data permintaan PutRow melebihi batas, ukuran batas: {Limit} , ukuran data: {Current}. | Ukuran data permintaan PutRow melebihi batas. | No |
| 400 | OTSParameterInvalid | Total ukuran data permintaan UpdateRow melebihi batas, ukuran batas: {Limit} , ukuran data: {Current}. | Ukuran data permintaan UpdateRow melebihi batas. | No |
| 400 | OTSParameterInvalid | Baris duplikat tidak mendukung pemeriksaan ekspektasi keberadaan baris dalam BatchModify. | Pemeriksaan keberadaan baris tidak diizinkan untuk baris duplikat dalam BatchWriteRow. | No |
| 400 | OTSParameterInvalid | Baris duplikat tidak mendukung pemeriksaan kondisi baris dalam BatchModify. | Pembaruan bersyarat tidak diizinkan untuk baris duplikat dalam BatchWriteRow. | No |
| 400 | OTSParameterInvalid | Baris duplikat terdeteksi dalam MultiPut. | Baris duplikat ada dalam MultiPut. | No |
| 400 | OTSParameterInvalid | Baris duplikat terdeteksi dalam MultiGet. | Baris duplikat ada dalam MultiGet. | No |
Kesalahan HTTP 400: kueri rentang (GetRange)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Batas harus lebih besar dari 0. | Nilai batas kurang dari atau sama dengan 0. Atur batas ke nilai lebih besar dari 0. | No |
| 400 | OTSParameterInvalid | Waktu mulai dan waktu akhir harus diberikan secara bersamaan. | Tentukan StartTime dan EndTime bersamaan untuk operasi GetRange. | No |
| 400 | OTSParameterInvalid | Kunci awal harus lebih kecil dari kunci akhir dalam FORWARD. | Kunci awal harus lebih kecil dari kunci akhir untuk kueri maju. | No |
| 400 | OTSParameterInvalid | Kunci awal harus lebih besar dari kunci akhir dalam BACKWARD. | Kunci awal harus lebih besar dari kunci akhir untuk kueri mundur. | No |
| 400 | OTSParameterInvalid | Ukuran pemindaian maks tidak valid: {Limit}. | Nilai batas untuk kueri rentang melebihi ambang batas. | No |
| 400 | OTSParameterInvalid | rentang tidak valid, tipe begin berbeda dari tipe end,{BeginType}:{EndType}. | Tipe kunci awal berbeda dari tipe kunci akhir untuk kueri rentang. | No |
Kesalahan HTTP 400: versi dan TTL
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Time-to-live tidak ada saat membuat tabel. | TTL tidak ditentukan saat membuat tabel. | No |
| 400 | OTSParameterInvalid | MaxVersions tidak ada saat membuat tabel. | Tidak ada nilai yang ditentukan untuk parameter jumlah versi maksimum saat membuat tabel. | No |
| 400 | OTSParameterInvalid | TimeToLive tidak boleh 0 atau kurang dari -1. | TTL tidak boleh 0 atau kurang dari -1. Anda dapat mengatur TTL ke -1. | No |
| 400 | OTSParameterInvalid | Jumlah versi maksimum tidak boleh kurang dari atau sama dengan 0. | Nilai jumlah versi maksimum harus lebih besar dari 0. | No |
| 400 | OTSParameterInvalid | Timestamp harus dalam rentang [0, INT64_MAX/1000). | Timestamp harus lebih besar dari atau sama dengan 0 dan kurang dari INT64_MAX/1000. | No |
| 400 | OTSParameterInvalid | Timestamp tertentu tidak boleh kurang dari 0. | Timestamp yang ditentukan kurang dari 0. | No |
| 400 | OTSParameterInvalid | Deviasi maksimum harus dalam rentang [0, INT64_MAX/1000000]. | Nilai offset versi maksimum di luar rentang. | No |
| 400 | OTSParameterInvalid | Tidak ada kondisi versi yang ditentukan saat mengkueri baris. | Tidak ada kondisi versi yang ditentukan untuk kueri. | No |
| 400 | OTSParameterInvalid | Timestamp tertentu dan jumlah versi maksimum tidak dapat diberikan secara bersamaan. | Timestamp dan parameter jumlah versi maksimum tidak dapat ditentukan secara bersamaan. | No |
| 400 | OTSParameterInvalid | Timestamp tertentu dan rentang waktu tidak dapat diberikan secara bersamaan. | Timestamp dan rentang waktu tidak dapat ditentukan secara bersamaan. | No |
| 400 | OTSParameterInvalid | Timestamp tertentu, rentang waktu, dan jumlah versi maksimum tidak dapat diberikan secara bersamaan. | Timestamp, rentang waktu, dan parameter jumlah versi maksimum tidak dapat ditentukan secara bersamaan. Tentukan hanya satu. | No |
| 400 | OTSParameterInvalid | Jumlah versi maksimum tidak valid: {Version} . Alasan: Jumlah versi maksimum harus positif. | Nilai jumlah versi maksimum tidak valid. Nilai harus lebih besar dari 0 atau sama dengan -1. | No |
| 400 | OTSParameterInvalid | Nama kolom atribut duplikat dengan kolom kunci primer:{PkName}. | Nama kolom atribut sama dengan nama kolom kunci primer. | No |
Kesalahan HTTP 400: capacity unit
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Nilai capacity unit baca tidak boleh kurang dari {Limit}. | Nilai CU baca kurang dari batas bawah. | No |
| 400 | OTSParameterInvalid | Nilai capacity unit tulis tidak boleh kurang dari {Limit}. | Nilai CU tulis kurang dari batas bawah. | No |
| 400 | OTSParameterInvalid | Capacity Unit tidak valid untuk UpdateTable: Baik read({CU}) maupun write({CU}) harus non-negatif. | Jumlah CU baca atau tulis kurang dari 0. Kedua nilai harus lebih besar dari atau sama dengan 0. | No |
| 400 | OTSParameterInvalid | Capacity Unit tidak valid:{CU} . Capacity Unit harus nonnegatif. | Nilai CU kurang dari 0. Nilai harus lebih besar dari atau sama dengan 0. | No |
| 400 | OTSParameterInvalid | Tidak dapat memesan capacity unit baca pada kluster penyimpanan hybrid: {TableName}. | CU baca yang dipesan tidak dapat ditentukan untuk instans kapasitas. | No |
| 400 | OTSParameterInvalid | Tidak dapat memesan capacity unit tulis pada kluster penyimpanan hybrid: {TableName}. | CU tulis yang dipesan tidak dapat ditentukan untuk instans kapasitas. | No |
| 400 | OTSParameterInvalid | Tidak ada parameter yang ditentukan dalam opsi tabel. | Tidak ada parameter yang ditentukan dalam TableOption. | No |
Kesalahan HTTP 400: filter
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Deserialize filter gagal. | Deserialisasi filter gagal. Format filter yang dienkapsulasi oleh SDK tidak valid. | No |
| 400 | OTSParameterInvalid | Offset dalam ColumnPaginationFilter harus lebih besar dari atau sama dengan 0. | Nilai offset ColumnPaginationFilter kurang dari 0. Atur offset ke 0 atau lebih besar. | No |
| 400 | OTSParameterInvalid | Batas dalam ColumnPaginationFilter harus lebih besar dari 0. | Nilai batas ColumnPaginationFilter kurang dari 0. Atur batas ke 0 atau lebih besar. | No |
| 400 | OTSParameterInvalid | Deserialize relation filter gagal. | Deserialisasi filter kolom tunggal gagal. Format filter SDK mungkin tidak valid. | No |
| 400 | OTSParameterInvalid | Deserialize composite filter gagal. | Deserialisasi filter gabungan gagal. Format filter SDK mungkin tidak valid. | No |
| 400 | OTSParameterInvalid | Deserialize column pagination filter gagal. | Deserialisasi filter baris lebar gagal. Format filter SDK mungkin tidak valid. | No |
| 400 | OTSParameterInvalid | Jumlah filter melebihi maks:{Limit}. | Jumlah filter melebihi batas. | No |
| 400 | OTSParameterInvalid | Offset Filter tidak valid: {Filter} . Alasan: Offset harus nonnegatif. | Nilai offset filter kurang dari 0. Atur offset ke 0 atau lebih besar. | No |
| 400 | OTSParameterInvalid | Operator relasi tidak valid: {Operation}. | Operator relasional tidak valid. | No |
| 400 | OTSParameterInvalid | Tipe filter tidak valid: {Type}. | Tipe filter tidak valid. | No |
| 400 | OTSParameterInvalid | Operator NOT tidak valid: jumlah sub-filter harus 1. | Operator NOT hanya mendukung satu subfilter. | No |
| 400 | OTSParameterInvalid | Operator AND/OR tidak valid: jumlah sub-filter harus 2. | Operator AND dan OR memerlukan tepat dua subfilter. | No |
| 400 | OTSParameterInvalid | Tipe sub-filter tidak valid: {Filter}. | Tipe subfilter tidak valid. | No |
Kesalahan HTTP 400: tipe kembalian dan kondisi
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Tipe kembalian tidak valid: {ReturnType}. | Tipe kembalian tidak valid. | No |
| 400 | OTSParameterInvalid | Kondisi tidak valid:{Condition}. | Kondisi yang ditentukan tidak valid. | No |
| 400 | OTSParameterInvalid | ModifyType tidak valid:{ModifyType}. | Tipe pembaruan tidak valid. | No |
Kesalahan HTTP 400: encoding PlainBuffer
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Input encoded PK rusak, tipe kunci sel tidak valid:xx. | Kunci primer yang di-encode dalam format PlainBuffer tidak valid. Tipe sel tidak valid. | No |
| 400 | OTSParameterInvalid | Input encoded PK rusak, panjang lebih pendek dari yang diharapkan. | Kunci primer yang di-encode dalam format PlainBuffer tidak valid. Panjang kunci primer kurang dari yang diharapkan. | No |
| 400 | OTSParameterInvalid | format data tidak valid. | Data baris yang di-encode dalam format PlainBuffer tidak valid. | No |
| 400 | OTSParameterInvalid | format data tidak valid, tipe varian tidak dikenal terjadi. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Tipe nilai tidak valid. | No |
| 400 | OTSParameterInvalid | Data sel rusak, header tidak cocok, aktual: {Header} , harapan: {Header}. | Data baris yang di-encode dalam format PlainBuffer tidak valid karena ketidakcocokan header. | No |
| 400 | OTSParameterInvalid | Data sel rusak, nilai PK tidak boleh NULL, nama: {PkName}. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Nilai kunci primer untuk PkName kosong. | No |
| 400 | OTSParameterInvalid | Data sel rusak, PK kosong. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Kunci primer tidak ditentukan. | No |
| 400 | OTSParameterInvalid | Data sel rusak, tidak ada PK setelah PKTag. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Kunci primer tidak mengikuti tag kunci primer. | No |
| 400 | OTSParameterInvalid | Data sel rusak, attr tidak memiliki nama. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Nama kolom atribut tidak ditentukan. | No |
| 400 | OTSParameterInvalid | Data sel rusak, attr tidak memiliki nilai, nama:{Name}. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Nilai kolom atribut tidak ditentukan. | No |
| 400 | OTSParameterInvalid | Data sel rusak, tidak ada Cells setelah CellTag. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Konten sel tidak mengikuti tag sel. | No |
| 400 | OTSParameterInvalid | Data sel rusak, tidak ada elemen valid dalam Cell, nama: {Name}. | Data baris yang di-encode dalam format PlainBuffer tidak valid karena format sel yang berbeda. | No |
| 400 | OTSParameterInvalid | Data sel rusak, sel tidak diakhiri dengan tag checksum[{0x0A}]". | Data baris yang di-encode dalam format PlainBuffer tidak valid. Sel tidak diakhiri dengan CheckSumFlag setelah encoding. | No |
| 400 | OTSParameterInvalid | Data sel rusak, baris tidak diakhiri dengan tag checksum. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Data baris tidak diakhiri dengan CheckSumTag setelah encoding. | No |
| 400 | OTSParameterInvalid | Data sel rusak, tag tidak cocok, tag aktual({TAG}), harapan({TAG}). | Data baris yang di-encode dalam format PlainBuffer tidak valid. Tag yang ditentukan tidak ada. | No |
| 400 | OTSParameterInvalid | Data sel rusak, format string salah, ukuran: {Size}. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Format encoding string tidak valid. | No |
| 400 | OTSParameterInvalid | Data sel rusak, checksum tidak cocok, {UserChecksum} :{ServiceChecksum} : | Data baris yang di-encode dalam format PlainBuffer tidak valid. Nilai UserChecksum berbeda dari nilai ServiceChecksum yang dihitung oleh server. | No |
| 400 | OTSParameterInvalid | Data sel rusak, ada data tambahan dalam sel, tetapi tidak dapat diurai. | Data kolom yang di-encode dalam format PlainBuffer tidak valid karena data berlebih. | No |
| 400 | OTSParameterInvalid | Baris tidak valid: checksum hilang. | Data baris yang di-encode dalam format PlainBuffer tidak valid. Nilai checksum baris tidak ditentukan. | No |
| 400 | OTSParameterInvalid | Kolom tidak valid({ColumnName}): checksum hilang. | Data kolom yang di-encode dalam format PlainBuffer tidak valid. Nilai checksum sel tidak ditentukan. | No |
| 400 | OTSParameterInvalid | Parse PBMessage dari RawString gagal. | Deserialisasi Protobuf gagal. Kode serialisasi SDK mungkin tidak valid. | No |
| 400 | OTSParameterInvalid | Tidak dapat mendeserialisasi data permintaan. | Deserialisasi data permintaan gagal karena nilai kosong atau format tidak valid. | No |
| 400 | OTSParameterInvalid | CellType yang tidak dikenal atau tidak didukung dalam kunci primer: {PkName}. | Tipe sel kunci primer tidak dikenali. | No |
| 400 | OTSParameterInvalid | Nilai boolean real tidak valid, panjang nilai: {Length}. | Data kolom yang di-encode dalam format PlainBuffer tidak valid. Panjang nilai Boolean tidak valid. | No |
| 400 | OTSParameterInvalid | NaN tidak dapat diatur sebagai nilai double. | Nilai kolom bertipe Double diatur ke NaN. | No |
| 400 | OTSParameterInvalid | Infinity tidak dapat diatur sebagai nilai double. | Nilai kolom bertipe Double diatur ke Infinity. | No |
Kesalahan HTTP 400: indeks pencarian dan fitur lanjutan
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | Tidak dapat menulis tabel indeks secara langsung. | Operasi tulis tidak dapat dilakukan pada tabel indeks. | No |
| 400 | OTSParameterInvalid | Mencoba memanggil metode menggunakan transaksi eksplisit pada tabel yang menonaktifkan transaksi eksplisit. | Transaksi lokal dinonaktifkan untuk tabel tersebut. | No |
| 400 | OTSParameterInvalid | Tabel[tablename] yang memiliki setidaknya satu indeks pencarian tidak dapat dihapus. | Tabel dengan indeks pencarian tidak dapat dihapus. Hapus indeks pencarian terlebih dahulu. | No |
| 400 | OTSParameterInvalid | agregasi/groupby bidang nested tidak boleh rekursif. | GroupBy atau agregasi rekursif tidak dapat digunakan dalam bidang nested. | No |
| 400 | OTSParameterInvalid | gagal mengkueri indeks, periksa apakah 'Index' diaktifkan untuk bidang kueri. | Pengindeksan dinonaktifkan untuk bidang kueri. Aktifkan pengindeksan untuk bidang tersebut. | No |
| 400 | OTSParameterInvalid | [ttl tabel] harus lebih besar dari atau sama dengan ttl indeks pencarian, tetapi ttl tabel adalah xxxx dan ttl indeks pencarian adalah [{IndexName}:xxxx] | TTL tabel data lebih kecil dari TTL indeks pencarian. TTL tabel data harus lebih besar dari atau sama dengan TTL indeks pencarian. | No |
| 400 | OTSParameterInvalid | jumlah indeks dalam pembuatan telah melebihi kuota instans, batas: 10 | Jumlah total indeks pencarian yang sedang dibuat dan indeks yang sedang menjalani modifikasi skema dinamis tidak boleh melebihi 10. Tunggu hingga sinkronisasi selesai dan coba lagi. | No |
| 400 | OTSParameterInvalid | tidak dapat menghapus analytical store dengan sql binding | Analytical store yang digunakan dalam tabel pemetaan tidak dapat dihapus. Hapus tabel pemetaan terlebih dahulu. | No |
Kesalahan HTTP 400: stream
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 400 | OTSTunnelServerUnavailable | OTSTrimmedDataAccess Data stream yang diminta sudah dipotong atau tidak ada. | Log stream telah kedaluwarsa dan data belum ditarik dalam periode yang lama. | No |
Kesalahan server Tablestore
Kesalahan ini berasal dari operasi sisi server Tablestore. Kesalahan dengan kode status HTTP 503, 409 (OTSRowOperationConflict), dan 404 (OTSTableNotReady) bersifat sementara dan dapat dicoba ulang dengan exponential backoff.
Kesalahan HTTP 503 (sementara)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 503 | OTSServerBusy | Server sedang sibuk. | Server internal Tablestore sedang sibuk. Coba lagi nanti. | Yes |
| 503 | OTSPartitionUnavailable | Partisi tidak tersedia. | Partisi sedang dimuat. Coba lagi nanti. | Yes |
| 503 | OTSTimeout | Operasi timeout. | Operasi internal Tablestore mengalami timeout. | Yes |
| 503 | OTSServerUnavailable | Server tidak tersedia. | Server internal Tablestore tidak dapat diakses. | Yes |
Kesalahan HTTP 409 (konflik)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 409 | OTSRowOperationConflict | Data sedang dimodifikasi oleh permintaan lain. | Permintaan tulis konkuren ke baris yang sama menyebabkan konflik. Coba ulang permintaan tersebut. | Yes |
| 409 | OTSObjectAlreadyExist | Tabel yang diminta sudah ada. | Tabel data atau tabel indeks yang ingin Anda buat sudah ada. | No |
Kesalahan HTTP 404 (tidak ditemukan)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 404 | OTSObjectNotExist | Tabel yang diminta tidak ada. | Tabel yang diminta tidak ada. Verifikasi nama tabel. | No |
| 404 | OTSTableNotReady | Tabel belum siap. | Tabel sedang diinisialisasi. Tunggu beberapa detik dan coba lagi. | Yes |
Kesalahan HTTP 403 (dilarang)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 403 | OTSTooFrequentReserved ThroughputAdjustment | Penyesuaian capacity unit terlalu sering. | CU baca/tulis disesuaikan terlalu sering. Tunggu sebelum menyesuaikan lagi. | Yes |
| 403 | OTSCapacityUnitExhausted | Capacity unit tidak mencukupi. | CU baca/tulis untuk partisi telah habis. | No |
| 403 | OTSConditionCheckFail | Pemeriksaan kondisi gagal. | Pemeriksaan kondisi gagal. Verifikasi kondisi keberadaan baris atau kondisi kolom. | No |
Kesalahan HTTP 429 (pembatasan kecepatan)
| Kode status HTTP | Kode kesalahan | Pesan kesalahan | Deskripsi | Retry |
|---|---|---|---|---|
| 429 | OTSFlowControl | Permintaan telah dibatasi kecepatannya. | Analisis kesalahan ini berdasarkan skenario aktual. Kirim tiket untuk menghubungi dukungan teknis Tablestore guna troubleshooting. | No |
Pola penanganan kesalahan umum
Saat menangani kesalahan Tablestore dalam aplikasi Anda, ikuti panduan berikut:
Terapkan exponential backoff untuk kesalahan yang dapat dicoba ulang. Untuk kesalahan yang ditandai sebagai dapat dicoba ulang (seperti OTSServerBusy, OTSPartitionUnavailable, OTSTimeout, OTSServerUnavailable, OTSRowOperationConflict, dan OTSTableNotReady), coba ulang permintaan dengan exponential backoff. Mulai dengan penundaan singkat (misalnya, 100 ms) dan gandakan penundaan pada setiap percobaan ulang berikutnya hingga mencapai penundaan maksimum.
Tangani kegagalan parsial operasi batch. Operasi BatchGetRow dan BatchWriteRow mungkin sebagian berhasil. Selalu periksa tanggapan untuk informasi kesalahan per baris, bahkan ketika respons HTTP mengembalikan status 200.
Beda antara kesalahan client dan kesalahan server. Kesalahan HTTP 4xx (400, 403, 404, 405, 408, 413, 429) menunjukkan masalah di sisi client. Perbaiki permintaan sebelum mencoba ulang. Kesalahan HTTP 5xx (500, 503) menunjukkan masalah di sisi server dan biasanya bersifat sementara.
Catat detail kesalahan untuk debugging. Sertakan kode kesalahan, pesan kesalahan, kode status HTTP, dan ID permintaan dalam log kesalahan Anda untuk membantu troubleshooting saat Anda perlu mengirim tiket.