Size of hashkey has exceeded the maximum size limit of 2048 bytes
TL;DR — DynamoDB plafonne les longueurs de clé : une valeur de clé de partition (hash) peut faire au plus 2048 octets, et une valeur de clé de tri (range) au plus 1024 octets, mesurées en octets UTF-8 (ou binaire brut). Une écriture dont la clé dépasse la limite est rejetée. Raccourcis la clé — hache les valeurs longues, ou déplace les données volumineuses dans un attribut non clé.
Ce que ça signifie
ValidationException: One or more parameter values were invalid: Size of hashkey has exceeded the maximum size limit of2048 bytes
# sort-key variant:
ValidationException: One or more parameter values were invalid: Aggregated size of all range keys has exceeded the size limit of 1024 bytes
# on DynamoDB Local you get one combined sentence instead, naming neither key:
ValidationException: Hash primary key values must be under 2048 bytes, and range primary key values must be under 1024 bytes(Oui, l'espace manquant dans « of2048 » est bien dans le message réel du service.) Les attributs de clé sont indexés et physiquement partitionnés par DynamoDB, donc leur longueur est bornée bien en dessous de la limite d'élément de 400 Ko. La valeur de la clé de partition doit faire de 1 à 2048 octets et la valeur de la clé de tri de 1 à 1024 octets. Le nombre d'octets est la taille encodée (UTF-8 pour les chaînes, octets bruts pour le binaire) — les caractères multi-octets comptent pour plus d'un. C'est une ValidationException HTTP 400, côté client, non réessayable tant que la clé n'a pas rétréci.
Pourquoi ça arrive
- Une chaîne longue comme clé de partition — une URL, un document complet, un blob encodé ou une clé composite concaténée utilisée directement comme valeur de clé.
- Une clé de tri composite verbeuse — de nombreux segments joints par
#qui dépassent ensemble 1024 octets. - Données en base64 / sérialisées dans une clé — l'encodage gonfle le nombre d'octets au-delà de la limite.
- Texte multi-octets — du contenu non-ASCII dont l'encodage UTF-8 est plus grand que ne le suggère le nombre de caractères.
Comment le corriger
- Hache la valeur longue — stocke un condensé déterministe (par ex. SHA-256, ~32 octets) comme clé et garde la valeur complète dans un attribut non clé séparé.
- Choisis une clé plus compacte — un identifiant naturel plus court plutôt que le champ volumineux.
- Raccourcis la clé composite — élague ou abrège les segments qui composent une clé de tri jointe par
#. - Déplace le contenu surdimensionné hors de la clé vers un attribut normal (qui n'a qu'à tenir dans la limite d'élément de 400 Ko).
Connecte-toi depuis DynoTable
Colle tes valeurs de clé provisoires dans le calculateur de taille d'élément et compare le nombre d'octets aux limites de 2048/1024 avant d'écrire. Dans DynoTable, le staging (⌘S) attrape les clés trop grosses sur des éléments de test ouverts avec ⌘K.
Quand tu raccourcis des clés composites, prototype tes requêtes dans le Query Builder. Change de profil avec ⌘P ; Test Connection dans Settings → Profiles. Vois Se connecter à AWS et Installation.
Sources
- Constraints in Amazon DynamoDB (vérifié le 2026-07-13)
- Supported data types and naming rules (vérifié le 2026-07-13)
Erreurs liées
- Item size has exceeded the maximum allowed size — la limite de 400 Ko sur l'élément entier (vs. la limite par clé).
- Item size to update has exceeded the maximum allowed size — une limite de taille de clé/index lors d'une mise à jour.
- ValidationException (aperçu)
- Apprends : Taille d'élément & la limite de 400 Ko · Clés primaires composites
Références
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.