The table does not have the specified index

TL;DR — Query/ScanIndexName が、そのテーブル(このクライアントのリージョン + アカウントから見て)に存在しない、スペルミスがある、または GSI がまだ CREATING でまだ照会できません。DescribeTable で正確なインデックス名とステータスを確認し、呼び出しを修正してください。

意味

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

DynamoDB に特定のセカンダリインデックスを名前で Query または Scan するよう求めましたが、テーブル(このクライアントから見て)には使用可能な状態でその名前のインデックスがありません。これは HTTP 400 の ValidationException で、名前/ステータスが正しくなるまで クライアント側の問題でリトライ不可 です。

発生する理由

  • タイプミスまたは誤った大文字小文字 — インデックス名は大文字小文字を区別します。GSI1gsi1
  • インデックスが別のテーブルに属する — 別のテーブルのスキーマから IndexName をコピーした。
  • GSI がまだ ACTIVE でない — 新しく作成されたグローバルセカンダリインデックスは、ステータスが CREATING → ACTIVE になるまで照会できません(先にバックフィルします)。
  • 誤ったリージョン/アカウント — クライアントが、テーブル(またはそのインデックス)が存在しないリージョンを指している(テーブルが欠落しているのと同じ整合の問題)。
  • DynamoDB Local のドリフト — インデックスより前の古いローカルの shared-local-instance.db。再作成してください。

修正方法

  1. 実際のインデックス名とステータスを一覧表示します:
    aws dynamodb describe-table --table-name <Table> \
      --query "Table.GlobalSecondaryIndexes[].{Name:IndexName,Status:IndexStatus}"
  2. 名前をそのまま IndexName にコピーします — 大文字小文字を正確に一致させます。
  3. ACTIVE を待ちます。 GSI が CREATING なら、バックフィルが完了してから(DescribeTableIndexStatus を表示)クエリが機能します。
  4. aws sts get-caller-identityリージョン + アカウントを確認 し、クライアントの region を固定します。
  5. DynamoDB Local では、ローカルの db ファイルを削除し、テーブル/インデックスのセットアップを再実行して、インデックスがローカルに存在するようにします。

複数のテーブルとインデックスをまたいで作業していますか?DynoTable のテーブルダイアログは各テーブルの GSI とそのステータスを一覧表示するため、名前を推測する代わりに、実際に存在して ACTIVE なインデックスを選べます。さらに、必要なインデックスが本当に存在しない場合は、GSI の作成と削除もできます。

DynoTable でクエリ

⌘K で DynoTable にテーブルを開き、Indexes パネルを展開してください — CLI を呼ばなくても、すべての GSI 名と IndexStatus が一覧されます。IndexName を手で打つ代わりに、クエリパネルのドロップダウンからインデックスを選びましょう。DynoTable は、接続中のテーブルに実在するインデックスしか提示しません。

GSI がまだ CREATING なら、ステータスが ACTIVE に変わるまでサイドバーからテーブルのメタデータを更新してください。クエリビルダーで GSI へのクエリを組み立て、生成された IndexName を SDK のコードにコピーしましょう。インデックスが一方のリージョンにしか存在しない場合は、⌘P でプロファイルを切り替えます。セットアップ: AWS に接続するインストール

出典

関連するエラー

参考資料

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynamoDB では実行できない本物の SQL(JOINs、GROUP BY、集計)を実行する高速な DynamoDB デスクトップクライアント。ビジュアル編集と、あなた自身の Bedrock キーで動く AI エージェントを備えています。

30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。