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-index

Você 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 ValidationExceptiondo 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; GSI1gsi1.
  • O índice pertence a uma tabela diferente — você copiou o IndexName do 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 seja CREATING → 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.db local obsoleto que antecede o índice; recrie-o.

Como corrigir

  1. Liste os nomes e status reais dos índices:
    aws dynamodb describe-table --table-name <Table> \
      --query "Table.GlobalSecondaryIndexes[].{Name:IndexName,Status:IndexStatus}"
  2. Copie o nome literalmente para o IndexName — respeitando maiúsculas e minúsculas.
  3. Aguarde o ACTIVE. Se o GSI está em CREATING, a consulta só funciona quando o preenchimento termina (o DescribeTable mostra o IndexStatus).
  4. Confirme region + conta com aws sts get-caller-identity e fixe a region do cliente.
  5. No DynamoDB Local, exclua o arquivo de db local e reexecute o setup da sua tabela/índice para que o índice exista localmente.
  6. 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

Erros relacionados

Referências

Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.