The table does not have the specified index
TL;DR — Query/Scan の IndexName が、そのテーブル(このクライアントのリージョン + アカウントから見て)に存在しない、スペルミスがある、または 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-indexDynamoDB に特定のセカンダリインデックスを名前で Query または Scan するよう求めましたが、テーブル(このクライアントから見て)には使用可能な状態でその名前のインデックスがありません。これは HTTP 400 の ValidationException で、名前/ステータスが正しくなるまで クライアント側の問題でリトライ不可 です。
発生する理由
- タイプミスまたは誤った大文字小文字 — インデックス名は大文字小文字を区別します。
GSI1≠gsi1。 - インデックスが別のテーブルに属する — 別のテーブルのスキーマから
IndexNameをコピーした。 - GSI がまだ
ACTIVEでない — 新しく作成されたグローバルセカンダリインデックスは、ステータスがCREATING → ACTIVEになるまで照会できません(先にバックフィルします)。 - 誤ったリージョン/アカウント — クライアントが、テーブル(またはそのインデックス)が存在しないリージョンを指している(テーブルが欠落しているのと同じ整合の問題)。
- DynamoDB Local のドリフト — インデックスより前の古いローカルの
shared-local-instance.db。再作成してください。
修正方法
- 実際のインデックス名とステータスを一覧表示します:
aws dynamodb describe-table --table-name <Table> \ --query "Table.GlobalSecondaryIndexes[].{Name:IndexName,Status:IndexStatus}" - 名前をそのまま
IndexNameにコピーします — 大文字小文字を正確に一致させます。 ACTIVEを待ちます。 GSI がCREATINGなら、バックフィルが完了してから(DescribeTableがIndexStatusを表示)クエリが機能します。aws sts get-caller-identityで リージョン + アカウントを確認 し、クライアントのregionを固定します。- DynamoDB Local では、ローカルの db ファイルを削除し、テーブル/インデックスのセットアップを再実行して、インデックスがローカルに存在するようにします。
複数のテーブルとインデックスをまたいで作業していますか?DynoTable のテーブルダイアログは各テーブルの GSI とそのステータスを一覧表示するため、名前を推測する代わりに、実際に存在して ACTIVE なインデックスを選べます。さらに、必要なインデックスが本当に存在しない場合は、GSI の作成と削除もできます。
DynoTable でクエリ
⌘K で DynoTable にテーブルを開き、Indexes パネルを展開してください — CLI を呼ばなくても、すべての GSI 名と IndexStatus が一覧されます。IndexName を手で打つ代わりに、クエリパネルのドロップダウンからインデックスを選びましょう。DynoTable は、接続中のテーブルに実在するインデックスしか提示しません。
GSI がまだ CREATING なら、ステータスが ACTIVE に変わるまでサイドバーからテーブルのメタデータを更新してください。クエリビルダーで GSI へのクエリを組み立て、生成された IndexName を SDK のコードにコピーしましょう。インデックスが一方のリージョンにしか存在しない場合は、⌘P でプロファイルを切り替えます。セットアップ: AWS に接続する、インストール。
出典
- Managing Global Secondary Indexes in DynamoDB (2026-07-13 時点で検証)
- Query — Amazon DynamoDB API Reference (2026-07-13 時点で検証)
関連するエラー
- ResourceNotFoundException — インデックスだけでなくテーブル全体が見つからない。
- Query key condition not supported — インデックスは存在するが、キー条件がそれに対して誤っている。
- Code example: Query a GSI in Node.js — IndexName が正しく配線されている。
- Learn: GSI vs LSI · GSIs are eventually consistent · インデックス (Indexes)
参考資料
- Managing Global Secondary Indexes in DynamoDB — Amazon DynamoDB Developer Guide
- Query — Amazon DynamoDB API Reference
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。