DynamoDB ValidationException
TL;DR — Una ValidationException significa que DynamoDB rechazó la petición por estar mal formada antes de tocar dato alguno. Lee el texto del mensaje: nombra el parámetro exacto que falla. No se escribió nada, así que corrige la forma de la petición y reintenta.
Qué significa
ValidationException es el error de cliente comodín de DynamoDB (HTTP 400) para una petición que no supera la validación — una expresión incorrecta, un valor en el envoltorio de tipo equivocado, una clave que no coincide con el esquema de la tabla, o un límite superado. No es reintentable: enviar la misma petición de nuevo produce el mismo error.
Como es una familia de errores, la solución depende por completo del texto del mensaje. Las variantes más comunes tienen cada una su propia página:
- La condición de Query omitió un elemento del esquema de clave
- El elemento de clave proporcionado no coincide con el esquema
- Sintaxis de UpdateExpression no válida
- ExpressionAttributeValues contiene un valor no válido
- El tamaño del elemento ha superado el máximo permitido
Por qué ocurre
- Una KeyConditionExpression que no incluye la partition key, o hace referencia a un atributo que no es clave.
- Un atributo de clave cuyo tipo no coincide con la definición de la tabla (p. ej. enviar un número como cadena).
- Una UpdateExpression / ConditionExpression / FilterExpression mal formada — una palabra reservada usada en crudo, un marcador
#nameo:valueque falta. - Valores vacíos donde no se permiten, o un atributo que se resuelve a un tipo no admitido.
- Un límite superado — Item por encima de 400 KB, demasiados Items en un
BatchWriteItem, expresión demasiado larga.
Cómo solucionarlo
- Lee el mensaje completo. DynamoDB te dice qué parámetro falló — la cadena es precisa ("Invalid UpdateExpression: Attribute name is a reserved keyword; reserved keyword: status").
- Empareja con la variante de arriba y aplica la solución de esa página.
- Valida la forma de la petición localmente antes de enviar — la mayoría de las
ValidationExceptionson una errata en una expresión o en un envoltorio de tipo.
FAQ
¿Es reintentable una DynamoDB ValidationException? No. La propia petición está mal formada, así que enviarla de nuevo produce el mismo error. Lee el texto del mensaje — nombra el parámetro exacto que falla — corrige la forma de la petición y luego reintenta.
¿Cuáles son las causas más comunes de una ValidationException? Una KeyConditionExpression que omite la partition key o hace referencia a un atributo que no es clave, un atributo de clave cuyo tipo no coincide con la definición de la tabla, una expresión mal formada que usa una palabra reservada o un marcador ausente, valores vacíos donde no se permiten, o un límite superado como un Item por encima de 400 KB.
Errores relacionados
- ConditionalCheckFailedException — falló una condición (no está mal formada; la escritura era válida pero se rechazó).
- ResourceNotFoundException — la tabla o el índice no existe.
- Aprende: Nombres y valores de expresión · Update expressions
Referencias
- 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 por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.