One or more parameter values were invalid
요약 — DynamoDB가 요청 형태는 수락했지만 그 안의 특정 값을 거부했습니다: 빈 Set, 키의 빈 문자열, 스키마와 일치하지 않는 타입의 값, 또는 허용되지 않는 곳의 null. 메시지의 나머지를 읽으세요 — 정확한 파라미터를 지정합니다 — 그리고 그 값을 고치세요.
무엇을 의미하는가
ValidationException: One or more parameter values were invalid: <specific reason>이것은 메시지 본문이 규칙을 위반한 한 값을 정확히 짚는 ValidationException(HTTP 400)입니다 — AWS는 메시지를 "발생한 특정 오류에 따라 다름"으로만 문서화합니다. 접두사는 일반적입니다. 중요한 부분은 그 뒤에 오는 것입니다 — 예를 들어 AttributeValue가 키에 빈 문자열을 포함할 수 없다거나, set이 비어 있을 수 없다거나, 키 값의 타입이 스키마와 일치하지 않는다는 것. 그대로는 재시도할 수 없습니다; 값이 바뀌어야 합니다.
왜 발생하는가
메시지 끝이 명시하는 전형적인 이유(정확한 표현은 경우에 따라 다름):
- 키 속성의 빈 문자열이나 바이너리 값 — 키가 아닌 문자열과 바이너리 값은 비어 있어도 됩니다. 테이블과 인덱스 키는 안 됩니다.
- 빈 set — 멤버가 0개인
SS/NS/BS. set은 어디서나 비어 있지 않아야 합니다. 빈 list와 map은 괜찮습니다. - 키의 타입 불일치(예:
expected: S actual: N) — 값의 타입이 테이블의 키 스키마와 일치하지 않습니다. - 이를 받아들이지 않는 속성에 전달된 null 값, 또는
undefined필드에null을 방출하는 마셜러. - 타입에 대해 범위를 벗어난 값(number overflow 참조).
어떻게 해결하는가
- 전체 메시지를 읽으세요. DynamoDB가 문제의 파라미터와 정확한 규칙을 지정합니다 — 그 문자열이 해결책입니다.
- 키에 실제 값을 주세요 — 파티션/정렬 키에 절대 빈 문자열이나 빈 바이너리가 아니게.
- 빈 set을 버리세요 — Set에 멤버가 없으면 속성을 생략하거나 대신 스칼라/
NULL을 저장하세요. - 타입을 스키마와 일치시키세요 — 숫자 키는 숫자로, 문자열 키는 문자열로 보내세요. 래퍼를 교차하지 마세요.
- 쓰기 전에
undefined/null을 제거하세요(Document Client의removeUndefinedValues옵션이 흔한 경우를 처리).
FAQ
"One or more parameter values were invalid"는 무슨 뜻인가요? 요청의 특정 값이 DynamoDB 규칙을 위반합니다 — 가장 흔하게는 키의 빈 문자열, 빈 Set, 키 스키마와 일치하지 않는 타입, 또는 허용되지 않는 null. 전체 메시지가 정확한 파라미터와 이유를 지정합니다.
빈 문자열은 왜 가끔만 실패하나요? DynamoDB는 키가 아닌 속성에 빈 문자열을 허용하지만 키 속성에서는 거부합니다. 파티션이나 정렬 키의 빈 문자열은 "An AttributeValue may not contain an empty string"을 발생시킵니다. 일반 속성의 같은 값은 수락됩니다.
관련 오류
- Supplied AttributeValue is empty — 타입이 지정된 값이 전혀 없는 항목 속성.
- The provided key element does not match the schema — 키 타입/형태 불일치.
- ValidationException (개요)
- 학습: DynamoDB data types
참고 자료
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- AttributeValue — Amazon DynamoDB API Reference
공식 AWS 문서(위 링크)를 기준으로 2026-07-13에 마지막으로 검증되었습니다.