"Size of hashkey has exceeded the maximum size limit of 2048 bytes": la dimensione della chiave hash ha superato il limite massimo di 2048 byte
TL;DR — DynamoDB limita la lunghezza delle chiavi: un valore di chiave di partizione (hash) può essere al massimo 2048 byte e un valore di chiave di ordinamento (intervallo) al massimo di 1024 byte, misurati come byte UTF-8 (o binario non elaborato). Una scrittura la cui chiave supera il limite viene rifiutata. Accorcia la chiave: esegui l'hash di valori lunghi o sposta i dati voluminosi in un attributo non chiave.
Cosa significa
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(Sì, lo spazio mancante in "of2048" è nel messaggio effettivo del servizio.) Gli attributi chiave sono indicizzati e partizionati fisicamente da DynamoDB, quindi la loro lunghezza è molto inferiore al limite di elementi di 400 KB. Il valore della chiave di partizione deve essere da 1 a 2048 byte e il valore della chiave di ordinamento da 1 a 1024 byte. Il conteggio dei byte corrisponde alla dimensione codificata (UTF-8 per le stringhe, byte grezzi per i binari): i caratteri multibyte contano per più di uno. Si tratta di una ValidationException HTTP 400, lato client, non riproducibile finché la chiave non si riduce.
Perché succede
- Una stringa lunga come chiave di partizione: un URL, un documento completo, un BLOB codificato o una chiave composita concatenata utilizzata direttamente come valore della chiave.
- Una chiave di ordinamento composita dettagliata: molti segmenti uniti con
#che insieme superano 1024 byte. - Base64 / dati serializzati in una chiave: la codifica aumenta il conteggio dei byte oltre il limite.
- Testo multibyte: contenuto non ASCII la cui codifica UTF-8 è maggiore di quanto suggerito dal conteggio dei caratteri.
Come risolverlo
- Hash del valore lungo: memorizza un digest deterministico (ad esempio SHA-256, ~32 byte) come chiave e mantieni il valore completo in un attributo non chiave separato.
- Scegli una chiave più compatta: un identificatore naturale più breve invece del campo voluminoso.
- Abbrevia la chiave composita: taglia o abbrevia i segmenti che compongono una chiave di ordinamento unita a
#. - Spostare i contenuti di grandi dimensioni fuori dalla chiave in un attributo regolare (che deve soddisfare solo il limite di elementi di 400 KB).
- Conta i byte UTF-8, non i caratteri. Il testo emoji e CJK si espande rapidamente: una stringa di 500 caratteri può superare i 2048 byte.
Connettiti da DynoTable
Incolla la bozza dei valori chiave nel calcolatore della dimensione dell'elemento e controlla il conteggio dei byte rispetto ai limiti 2048/1024 prima di scrivere. In DynoTable, la gestione temporanea (⌘S) rileva chiavi di grandi dimensioni su elementi di test aperti con ⌘K.
Quando si accorciano le chiavi composite, prototipare le query nel Builder di query. Cambia profilo con ⌘P; Verifica connessione in Impostazioni → Profili. Consulta Connetti a AWS e Installa.
Fonti
- Vincoli in Amazon DynamoDB (verificato il 13-07-2026)
- Tipi di dati supportati e regole di denominazione (verificato il 13-07-2026)
Errori correlati
- La dimensione dell'elemento ha superato la dimensione massima consentita: il limite di 400 KB per l'intero elemento (rispetto al limite per chiave).
- La dimensione dell'elemento da aggiornare ha superato la dimensione massima consentita: un limite di dimensione chiave/indice durante un aggiornamento.
- ValidationException (panoramica)
- Impara: Dimensione dell'elemento e limite di 400 KB · Chiavi primarie composite
Riferimenti
- Vincoli in Amazon DynamoDB — Guida per sviluppatori di Amazon DynamoDB
- Tipi di dati supportati e regole di denominazione in Amazon DynamoDB — Guida per sviluppatori di Amazon DynamoDB
- Gestione degli errori con DynamoDB - Guida per sviluppatori di Amazon DynamoDB
Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale del AWS collegata sopra.