DynamoDB ValidationException
In breve — Una ValidationException significa che DynamoDB ha rifiutato la richiesta come malformata prima di toccare qualsiasi dato. Leggi il testo del messaggio: nomina l'esatto parametro in errore. Nulla è stato scritto, quindi correggi la forma della richiesta e riprova.
Cosa significa
ValidationException è l'errore client onnicomprensivo di DynamoDB (HTTP 400) per una richiesta che fallisce la validazione — un'espressione errata, un valore nel wrapper di tipo sbagliato, una chiave che non corrisponde allo schema della tabella, o un limite superato. Non è ripetibile: inviare di nuovo la stessa richiesta produce lo stesso errore.
Poiché è una famiglia di errori, la soluzione dipende interamente dalla stringa del messaggio. Le varianti più comuni hanno ciascuna la propria pagina:
- Query condition missed key schema element
- The provided key element does not match the schema
- Invalid UpdateExpression syntax
- ExpressionAttributeValues contains invalid value
- Item size has exceeded the maximum allowed size
Perché succede
- Un KeyConditionExpression che non include la partition key, o fa riferimento a un attributo non-chiave.
- Un attributo chiave il cui tipo non corrisponde alla definizione della tabella (es. inviare un numero come stringa).
- Un UpdateExpression / ConditionExpression / FilterExpression malformato — una parola riservata usata nuda, un placeholder
#nameo:valuemancante. - Valori vuoti dove non sono consentiti, o un attributo che si risolve in un tipo non supportato.
- Un limite superato — Item oltre 400 KB, troppi Item in un
BatchWriteItem, espressione troppo lunga.
Come risolverlo
- Leggi il messaggio completo. DynamoDB ti dice quale parametro è fallito — la stringa è precisa ("Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: status").
- Abbinalo alla variante sopra e applica la soluzione di quella pagina.
- Valida la forma della richiesta localmente prima di inviare — la maggior parte delle
ValidationExceptionè un refuso in un'espressione o in un wrapper di tipo.
FAQ
Una DynamoDB ValidationException è ripetibile? No. La richiesta stessa è malformata, quindi inviarla di nuovo produce lo stesso errore. Leggi il testo del messaggio — nomina l'esatto parametro in errore — correggi la forma della richiesta, e poi riprova.
Quali sono le cause più comuni di una ValidationException? Un KeyConditionExpression che omette la partition key o fa riferimento a un attributo non-chiave, un attributo chiave il cui tipo non corrisponde alla definizione della tabella, un'espressione malformata che usa una parola riservata o un placeholder mancante, valori vuoti dove non sono consentiti, o un limite superato come un Item oltre 400 KB.
Errori correlati
- ConditionalCheckFailedException — una condizione è fallita (non malformata; la scrittura era valida ma rifiutata).
- ResourceNotFoundException — la tabella o l'indice non esiste.
- Impara: Expression names & values · Update expressions
Riferimenti
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Reserved words in DynamoDB — Amazon DynamoDB Developer Guide
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.