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/BS sans 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 null pour un champ undefined.
  • Une valeur hors plage pour son type (voir number overflow).

Comment le corriger

  1. Lis le message complet. DynamoDB nomme le paramètre fautif et la règle exacte — cette chaîne est la solution.
  2. Donne de vraies valeurs aux clés — jamais une chaîne vide ou un binaire vide dans une clé de partition/tri.
  3. Supprime les sets vides — omets l'attribut quand un Set n'a pas de membre, ou stocke un scalaire/NULL à la place.
  4. 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.
  5. Retire les undefined/null de l'élément avant l'écriture (l'option removeUndefinedValues du 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

Références

Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.

Travaille avec DynamoDB sans la Console

Un client de bureau rapide pour DynamoDB qui exécute le vrai SQL que DynamoDB ne peut pas — JOINs, GROUP BY, agrégations — avec édition visuelle et un agent IA sur tes propres clés Bedrock.

Essai gratuit de 30 jours, sans carte bancaire — ensuite la formule Gratuit, sans limite de durée.