A tabela não possui o índice especificado
TL;DR — O IndexName em seu Query/Scan não existe nessa tabela (da região + conta deste cliente), está escrito incorretamente ou o GSI ainda é CREATING e ainda não pode ser consultado. Confirme o nome e o status exatos do índice com DescribeTable e corrija a chamada.
O que 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-indexVocê solicitou a DynamoDB para Query ou Scan um índice secundário específico por nome, e a tabela (como este cliente a vê) não possui nenhum índice com esse nome em um estado utilizável. É um HTTP 400 ValidationException — do lado do cliente e não pode ser tentado novamente até que o nome/status esteja correto.
Por que isso acontece
- Erro de digitação ou maiúsculas e minúsculas — os nomes dos índices diferenciam maiúsculas de minúsculas;
GSI1≠gsi1. - O índice pertence a uma tabela diferente — você copiou o
IndexNamedo esquema de outra tabela. - O GSI ainda não é
ACTIVE— um índice secundário global recém-criado não pode ser consultado até que seu status sejaCREATING → ACTIVE(ele é preenchido primeiro). - Região errada/account — o cliente aponta para uma região onde a tabela (ou seu índice) não existe (o mesmo problema de alinhamento de uma tabela ausente).
- Desvio local DynamoDB — um
shared-local-instance.dblocal obsoleto que antecede o índice; recrie-o.
Como corrigir
- Liste os nomes e status reais dos índices:
aws dynamodb describe-table --table-name <Table> \ --query "Table.GlobalSecondaryIndexes[].{Name:IndexName,Status:IndexStatus}" - Copie o nome literalmente para o
IndexName— respeitando maiúsculas e minúsculas. - Aguarde o
ACTIVE. Se o GSI está emCREATING, a consulta só funciona quando o preenchimento termina (oDescribeTablemostra oIndexStatus). - Confirme region + conta com
aws sts get-caller-identitye fixe aregiondo cliente. - No DynamoDB Local, exclua o arquivo de db local e reexecute o setup da sua tabela/índice para que o índice exista localmente.
- Verifique se a condição de chave corresponde ao schema do índice. Um nome de índice válido com uma condição de chave sobre os atributos errados ainda falha — mas com um erro diferente; descarte antes nome/status.
Trabalhando em várias tabelas e índices? O diálogo Table do DynoTable lista os GSIs de cada tabela e seu status, para que você possa escolher um índice que de fato existe — e está ACTIVE — em vez de adivinhar o nome. Ele também cria e remove um GSI quando o índice de que você precisava está genuinamente ausente.
Consulte no DynoTable
Abra a tabela no DynoTable com ⌘K e expanda o painel Indexes — cada nome de GSI e seu IndexStatus aparecem ali, sem nenhuma chamada de CLI. Escolha o índice no dropdown do painel de consulta em vez de digitar o IndexName à mão; o DynoTable só oferece índices que existem na tabela conectada.
Se o GSI ainda estiver CREATING, atualize os metadados da tabela pela barra lateral até o status virar ACTIVE. Use o Query Builder para compor uma consulta ao GSI e copiar o IndexName gerado para o código do seu SDK. Troque de perfil com ⌘P quando o índice existir em uma Region mas não em outra. Configuração: Connect to AWS, Install.
Fontes
- Managing Global Secondary Indexes in DynamoDB (verificado em 2026-07-13)
- Query — Amazon DynamoDB API Reference (verificado em 2026-07-13)
Erros relacionados
- ResourceNotFoundException — a tabela inteira (não apenas um índice) não pode ser encontrada.
- Condição da chave de consulta não suportada — o índice existe, mas sua condição de chave está errada para ele.
- Exemplo de código: Query a GSI in Node.js —
IndexNameligado corretamente. - Aprenda: GSI vs LSI · GSIs are eventually consistent · Índices
Referências
- Managing Global Secondary Indexes in DynamoDB — Amazon DynamoDB Developer Guide
- Query — Amazon DynamoDB API Reference
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.