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-index你让 DynamoDB 按名称 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 的 Table 对话框会列出每张表的 GSI 及其状态,让你能挑一个确实存在——且处于 ACTIVE——的索引,而不是猜名称。当你需要的索引确实不存在时,它还能创建和删除 GSI。
在 DynoTable 中查询
使用 ⌘K 打开 DynoTable 中的表并展开 索引 面板 - 每个 GSI 名称和 IndexStatus 都会在没有 CLI 调用的情况下列出。从查询面板的下拉列表中选择索引,而不是手动输入 IndexName; DynoTable 仅提供连接表上存在的索引。如果GSI仍然是CREATING,则从侧边栏刷新表元数据,直到状态翻转到ACTIVE。使用 Query Builder 组成 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——索引存在,但你的键条件对它是错的。
- 代码示例:Query a GSI in Node.js——IndexName 连接正确。
- 学习:GSI vs LSI · GSIs are eventually consistent · 索引
参考资料
- 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 官方文档。