DynamoDB ValidationException
TL;DR — Um ValidationException significa que o DynamoDB rejeitou a requisição como malformada antes de tocar em qualquer dado. Leia o texto da mensagem: ele nomeia o parâmetro exato em falha. Nada foi escrito, então corrija a forma da requisição e tente novamente.
O que significa
ValidationException é o erro de cliente genérico do DynamoDB (HTTP 400) para uma requisição que falha na validação — uma expressão ruim, um valor no wrapper de tipo errado, uma chave que não corresponde ao schema da tabela, ou um limite excedido. Ele não é retentável: enviar a mesma requisição novamente produz o mesmo erro.
Como é uma família de erros, a correção depende inteiramente da string da mensagem. As variantes mais comuns têm cada uma sua própria página:
- 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
Por que isso acontece
- Um KeyConditionExpression que não inclui a chave de partição, ou referencia um atributo que não é chave.
- Um atributo de chave cujo tipo não corresponde à definição da tabela (por exemplo, enviar um número como string).
- Um UpdateExpression / ConditionExpression / FilterExpression malformado — uma palavra reservada usada crua, um placeholder
#nameou:valueausente. - Valores vazios onde não são permitidos, ou um atributo que resolve para um tipo não suportado.
- Um limite excedido — item acima de 400 KB, itens demais em um
BatchWriteItem, expressão longa demais.
Como corrigir
- Leia a mensagem completa. O DynamoDB diz qual parâmetro falhou — a string é precisa ("Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: status").
- Combine-a com a variante acima e aplique a correção daquela página.
- Valide a forma da requisição localmente antes de enviar — a maioria dos
ValidationExceptions é um erro de digitação em uma expressão ou um wrapper de tipo.
FAQ
Um DynamoDB ValidationException é retentável? Não. A própria requisição está malformada, então enviá-la novamente produz o mesmo erro. Leia o texto da mensagem — ele nomeia o parâmetro exato em falha — corrija a forma da requisição e então tente novamente.
Quais são as causas mais comuns de um ValidationException? Um KeyConditionExpression que omite a chave de partição ou referencia um atributo que não é chave, um atributo de chave cujo tipo não corresponde à definição da tabela, uma expressão malformada usando uma palavra reservada ou um placeholder ausente, valores vazios onde não são permitidos, ou um limite excedido como um item acima de 400 KB.
Erros relacionados
- ConditionalCheckFailedException — uma condição falhou (não malformada; a escrita era válida mas foi rejeitada).
- ResourceNotFoundException — a tabela ou índice não existe.
- Aprenda: Expression names & values · Update expressions
Referências
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Reserved words in DynamoDB — Amazon DynamoDB Developer Guide
Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.