테이블에 지정된 인덱스가 없습니다.

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(먼저 채우기)가 될 때까지 쿼리할 수 없습니다.
  • 잘못된 지역/계정 — 클라이언트가 테이블(또는 해당 인덱스)이 존재하지 않는 지역(the same lineup issue as a missing table)을 가리킵니다.
  • DynamoDB 로컬 드리프트 — 인덱스 이전의 오래된 로컬 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 파일을 삭제하고 테이블/인덱스 설정을 다시 실행하여 인덱스가 로컬에 존재하도록 합니다.

  6. 키 조건이 인덱스 스키마와 일치하는지 확인합니다. 잘못된 속성에 대한 키 조건이 있는 유효한 인덱스 이름은 여전히 실패하지만 다른 오류가 발생합니다. 이름/상태를 먼저 제외하세요.

여러 테이블과 인덱스에서 작업하시나요? DynoTable의 Table 대화 상자에는 각 테이블의 GSI와 상태가 나열되어 있으므로 이름을 추측하는 대신 실제로 존재하는 인덱스(ACTIVE)를 선택할 수 있습니다. 또한 필요한 인덱스가 실제로 존재하지 않을 때는 GSI를 생성하고 삭제할 수도 있습니다.

DynoTable에서 쿼리

⌘K를 사용하여 DynoTable에서 테이블을 열고 Indexes 패널을 확장합니다. 모든 GSI 이름과 IndexStatus은 CLI 호출 없이 나열됩니다. IndexName를 직접 입력하는 대신 쿼리 패널의 드롭다운에서 색인을 선택하세요. DynoTable은 연결된 테이블에 존재하는 인덱스만 제공합니다.

GSI가 여전히 CREATING이면 상태가 ACTIVE로 바뀔 때까지 사이드바에서 테이블 메타데이터를 새로 고칩니다. Query Builder를 사용하여 GSI 쿼리를 작성하고 생성된 IndexName를 SDK 코드에 복사합니다. 인덱스가 한 지역에만 있고 다른 지역에는 없는 경우 ⌘P로 프로필을 전환합니다. 설정: Connect to AWS, Install.

출처

관련 오류

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.