One or more parameter values were invalid
TL;DR — DynamoDB a accepté la forme de la requête mais a rejeté une valeur précise à l'intérieur : un Set vide, une chaîne vide dans une clé, une valeur dont le type ne correspond pas au schéma, ou un null là où il n'est pas autorisé. Lis la suite du message — il nomme le paramètre exact — et corrige cette valeur.
Ce que ça signifie
ValidationException: One or more parameter values were invalid: <specific reason>C'est une ValidationException (HTTP 400) dont le corps du message pointe une valeur qui a enfreint une règle — AWS documente le message uniquement comme « varies, depending upon the specific error(s) encountered ». Le préfixe est générique ; la partie importante est ce qui suit — par exemple qu'un AttributeValue ne peut pas contenir de chaîne vide pour une clé, qu'un set ne peut pas être vide, ou que le type d'une valeur de clé ne correspond pas au schéma. Elle n'est pas réessayable telle quelle ; la valeur doit changer.
Pourquoi ça arrive
Raisons typiques que la fin du message détaille (le libellé exact varie selon le cas) :
- Une chaîne vide ou une valeur binaire vide dans un attribut de clé — les chaînes et valeurs binaires hors clé peuvent être vides ; les clés de table et d'index, non.
- Un set vide — un
SS/NS/BSsans membre. Les sets doivent être non vides partout ; les listes et maps vides sont acceptées. - Une incompatibilité de type pour une clé (par exemple
expected: S actual: N) — le type de la valeur ne correspond pas au schéma de clé de la table. - Une valeur null passée à un attribut qui ne l'accepte pas, ou un marshaller émettant
nullpour un champundefined. - Une valeur hors plage pour son type (voir number overflow).
Comment le corriger
- Lis le message complet. DynamoDB nomme le paramètre fautif et la règle exacte — cette chaîne est la solution.
- Donne de vraies valeurs aux clés — jamais une chaîne vide ou un binaire vide dans une clé de partition/tri.
- Supprime les sets vides — omets l'attribut quand un Set n'a pas de membre, ou stocke un scalaire/
NULLà la place. - Fais correspondre les types au schéma — envoie une clé numérique comme un nombre, une clé chaîne comme une chaîne ; ne croise pas les wrappers.
- Retire les
undefined/nullde l'élément avant l'écriture (l'optionremoveUndefinedValuesdu Document Client gère le cas courant).
FAQ
Que signifie « One or more parameter values were invalid » ? Une valeur précise de ta requête enfreint une règle DynamoDB — le plus souvent une chaîne vide dans une clé, un Set vide, un type qui ne correspond pas au schéma de clé, ou un null interdit. Le message complet nomme le paramètre et la raison exacts.
Pourquoi une chaîne vide n'échoue-t-elle que parfois ? DynamoDB autorise les chaînes vides pour les attributs hors clé mais les rejette dans les attributs de clé. Une chaîne vide dans une clé de partition ou de tri déclenche « An AttributeValue may not contain an empty string » ; la même valeur dans un attribut ordinaire est acceptée.
Erreurs liées
- Supplied AttributeValue is empty — un attribut d'élément sans aucune valeur typée.
- The provided key element does not match the schema — une incompatibilité de type/forme de clé.
- ValidationException (vue d'ensemble)
- En savoir plus : DynamoDB data types
Références
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- AttributeValue — Amazon DynamoDB API Reference
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.