DynamoDB ValidationException
TL;DR — ValidationException berarti DynamoDB menolak permintaan sebagai salah bentuk sebelum menyentuh data apa pun. Baca teks pesan: ia menyebut parameter tepat yang bermasalah. Tidak ada yang ditulis, jadi perbaiki bentuk permintaan dan coba lagi.
Apa artinya
ValidationException adalah kesalahan klien serba-guna DynamoDB (HTTP 400) untuk permintaan yang gagal validasi — expression buruk, nilai dalam pembungkus tipe yang salah, kunci yang tidak cocok dengan schema tabel, atau batas terlampaui. Ini tidak dapat dicoba ulang: mengirim permintaan yang sama lagi menghasilkan kesalahan yang sama.
Karena ini keluarga kesalahan, perbaikannya bergantung sepenuhnya pada string pesan. Varian paling umum masing-masing punya halamannya sendiri:
- Kondisi kueri elemen skema kunci tidak ada
- Elemen kunci yang diberikan tidak cocok dengan skema
- Sintaks UpdateExpression tidak valid
- ExpressionAttributeValues berisi nilai yang tidak valid
- Ukuran item telah melampaui ukuran maksimum yang diizinkan
Mengapa itu terjadi
- KeyConditionExpression yang tidak menyertakan partition key, atau merujuk atribut non-kunci.
- Atribut kunci yang tipenya tidak cocok dengan definisi tabel (mis. mengirim number sebagai string).
- UpdateExpression / ConditionExpression / FilterExpression yang salah bentuk — kata reserved digunakan mentah, placeholder
#nameatau:valueyang hilang. - Nilai kosong di tempat yang tidak diizinkan, atau atribut yang teruraikan ke tipe yang tidak didukung.
- Batas terlampaui — item di atas 400 KB, terlalu banyak item dalam
BatchWriteItem, expression terlalu panjang.
Bagaimana cara memperbaikinya
- Baca pesan lengkap. DynamoDB memberi tahu Anda parameter mana yang gagal — string-nya presisi ("Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: status").
- Cocokkan dengan varian di atas dan terapkan perbaikan halaman itu.
- Validasi bentuk permintaan secara lokal sebelum mengirim — sebagian besar
ValidationExceptionadalah salah ketik dalam expression atau pembungkus tipe.
FAQ
Apakah DynamoDB ValidationException dapat dicoba ulang? Tidak. Permintaan itu sendiri salah bentuk, jadi mengirimnya lagi menghasilkan kesalahan yang sama. Baca teks pesan — ia menyebut parameter tepat yang bermasalah — perbaiki bentuk permintaan, lalu coba lagi.
Apa penyebab paling umum ValidationException? KeyConditionExpression yang menghilangkan partition key atau merujuk atribut non-kunci, atribut kunci yang tipenya tidak cocok dengan definisi tabel, expression salah bentuk yang menggunakan kata reserved atau placeholder yang hilang, nilai kosong di tempat yang tidak diizinkan, atau batas terlampaui seperti item di atas 400 KB.
Kesalahan terkait
- ConditionalCheckFailedException — sebuah kondisi gagal (bukan salah bentuk; tulisan valid tetapi ditolak).
- ResourceNotFoundException — tabel atau index tidak ada.
- Pelajari: Expression names & values · Update expressions
Referensi
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Reserved words in DynamoDB — Amazon DynamoDB Developer Guide
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.