DynamoDB ValidationException
TL;DR — Eine ValidationException bedeutet, dass DynamoDB die Anfrage als fehlerhaft abgewiesen hat, bevor es Daten berührte. Lies den Meldungstext: Er nennt den exakten fehlerhaften Parameter. Nichts wurde geschrieben, also korrigiere die Anfrageform und wiederhole.
Was es bedeutet
ValidationException ist DynamoDBs Sammel-Clientfehler (HTTP 400) für eine Anfrage, die an der Validierung scheitert — ein fehlerhafter Ausdruck, ein Wert im falschen Typ-Wrapper, ein Schlüssel, der nicht zum Schema der Tabelle passt, oder ein überschrittenes Limit. Es ist nicht wiederholbar: Dieselbe Anfrage erneut zu senden erzeugt denselben Fehler.
Weil es eine Fehlerfamilie ist, hängt die Lösung ganz vom Meldungsstring ab. Die häufigsten Varianten haben jeweils ihre eigene Seite:
- Query condition missed key schema element
- The provided key element does not match the schema
- Ungültige UpdateExpression-Syntax
- ExpressionAttributeValues contains invalid value
- Item size has exceeded the maximum allowed size
Warum es passiert
- Eine KeyConditionExpression, die den Partitionsschlüssel nicht enthält oder ein Nicht-Schlüssel-Attribut referenziert.
- Ein Schlüsselattribut, dessen Typ nicht zur Tabellendefinition passt (z. B. eine Zahl als String senden).
- Eine fehlerhafte UpdateExpression / ConditionExpression / FilterExpression — ein reserviertes Wort roh verwendet, ein fehlender
#name- oder:value-Platzhalter. - Leere Werte, wo sie nicht erlaubt sind, oder ein Attribut, das auf einen nicht unterstützten Typ auflöst.
- Ein überschrittenes Limit — Item über 400 KB, zu viele Items in einem
BatchWriteItem, Ausdruck zu lang.
So behebst du es
- Lies die vollständige Meldung. DynamoDB sagt dir, welcher Parameter fehlschlug — der String ist präzise ("Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: status").
- Ordne sie der obigen Variante zu und wende die Lösung dieser Seite an.
- Validiere die Anfrageform lokal vor dem Senden — die meisten
ValidationExceptions sind ein Tippfehler in einem Ausdruck oder einem Typ-Wrapper.
FAQ
Ist eine DynamoDB ValidationException wiederholbar? Nein. Die Anfrage selbst ist fehlerhaft, sodass ihr erneutes Senden denselben Fehler erzeugt. Lies den Meldungstext — er nennt den exakten fehlerhaften Parameter — korrigiere die Anfrageform und wiederhole dann.
Was sind die häufigsten Ursachen einer ValidationException? Eine KeyConditionExpression, die den Partitionsschlüssel weglässt oder ein Nicht-Schlüssel-Attribut referenziert, ein Schlüsselattribut, dessen Typ nicht zur Tabellendefinition passt, ein fehlerhafter Ausdruck mit einem reservierten Wort oder einem fehlenden Platzhalter, leere Werte, wo sie nicht erlaubt sind, oder ein überschrittenes Limit wie ein Item über 400 KB.
Verwandte Fehler
- ConditionalCheckFailedException — eine Bedingung schlug fehl (nicht fehlerhaft; der Write war gültig, aber abgewiesen).
- ResourceNotFoundException — die Tabelle oder der Index existiert nicht.
- Learn: Expression-Namen & -Werte · Update-Expressions
Referenzen
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Reserved words in DynamoDB — Amazon DynamoDB Developer Guide
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.