La tabella non ha l'indice specificato
TL;DR — Il IndexName nel tuo Query/Scan non esiste su quella tabella (dalla regione + account di questo cliente), è scritto male, oppure GSI è ancora CREING e non è ancora possibile interrogarlo. Conferma il nome esatto dell'indice e lo stato con "DescribeTable", quindi correggi la chiamata.
Cosa significa
ValidationException: The table does not have the specified index: <IndexName>
# what the engine actually returns, reproduced against DynamoDB Local:
ValidationException: The table does not have the specified index: no-such-indexHai chiesto DynamoDB di Query o Scansionare un indice secondario specifico per nome e la tabella (come la vede questo client) non ha alcun indice con quel nome in uno stato utilizzabile. Si tratta di una ValidationException HTTP 400 — lato client e non riprovabile finché il nome/stato non è corretto.
Perché succede
- Errore di battitura o maiuscole e minuscole: i nomi degli indici fanno distinzione tra maiuscole e minuscole; "GSI1" ≠ "gsi1".
- L'indice appartiene a una tabella diversa: hai copiato
IndexNamedallo schema di un'altra tabella. - Il GSI non è ancora
ACTIVE: un indice secondario globale appena creato non può essere interrogato finché il suo stato non diventaCREATING → ACTIVE(prima viene riempito). - Regione/account errato: il client punta a una regione in cui la tabella (o il suo indice) non esiste (lo stesso problema di formazione di una tabella mancante).
- DynamoDB Deriva locale: un
shared-local-instance.dblocale obsoleto che precede l'indice; ricrearlo.
Come risolverlo
- Elencare i nomi e lo stato reali dell'indice:
aws dynamodb describe-table --table-name <Table> \ --query "Table.GlobalSecondaryIndexes[].{Name:IndexName,Status:IndexStatus}" - Copia il nome parola per parola in
IndexName: corrisponde esattamente a maiuscole e minuscole. - Attendere
ACTIVE. Se GSI èCREATING, la query funziona solo al termine del backfill (DescribeTablemostraIndexStatus). - Conferma regione + account con "aws sts get-caller-identity" e aggiungi la "regione" del cliente.
- Su DynamoDB Locale, elimina il file db locale ed esegui nuovamente la configurazione della tabella/indice in modo che l'indice esista localmente.
- Verificare che la condizione chiave corrisponda allo schema dell'indice. Un nome indice valido con una condizione chiave sugli attributi errati continua a fallire, ma con un errore diverso; escludere prima il nome/stato.
Lavori su più tabelle e indici? La finestra di dialogo Table di DynoTable elenca i GSI di ogni tabella e il loro stato, quindi puoi scegliere un indice che esiste realmente — ed è ACTIVE — invece di indovinare il nome. Inoltre crea ed elimina un GSI quando l'indice che ti serviva manca davvero.
Interroga in DynoTable
Apri la tabella in DynoTable con ⌘K ed espandi il pannello Indici: ogni nome GSI e IndexStatus viene elencato senza una chiamata CLI. Scegli l'indice dal menu a discesa nel pannello delle query invece di digitare manualmente "NomeIndice"; DynoTable offre solo gli indici che esistono sulla tabella connessa.
Se GSI è ancora CREING, aggiorna i metadati della tabella dalla barra laterale finché lo stato non passa a ACTIVE. Utilizza il Query Builder per comporre una query GSI e copiare il IndexName generato nel codice SDK. Cambia profilo con ⌘P quando l'indice esiste in una regione ma non in un'altra. Configurazione: Connetti a AWS, Installa.
Fonti
- Gestione degli indici secondari globali in DynamoDB (verificato il 13-07-2026)
- Query: riferimento Amazon DynamoDB API (verificato il 13-07-2026)
Errori correlati
- ResourceNotFoundException — non è possibile trovare l'intera tabella (non solo un indice).
- Condizione della chiave di query non supportata — l'indice esiste ma la condizione della chiave è errata.
- Esempio di codice: Query a GSI in Node.js — IndexName cablato correttamente.
- Impara: GSI vs LSI · I GSI sono finalmente coerenti · Panoramica degli indici
Riferimenti
- Gestione degli indici secondari globali in DynamoDB - Guida per sviluppatori di Amazon DynamoDB
- Query: riferimento Amazon DynamoDB API
- 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.