An operand in the update expression has an incorrect data type
요약 — 업데이트의 작업은 실제로 저장된 것(그리고 보낸 값)에 대해 타입 검사되며, 그중 하나가 맞지 않습니다: 숫자나 set이 아닌 속성에 대한 ADD, list가 아닌 것에 대한 list_append, 또는 요소 타입이 저장된 set과 일치하지 않는 set 피연산자. 피연산자를 저장된 타입과 일치시키거나 — 타입이 드리프트한 항목을 고치세요.
무엇을 의미하나요
ValidationException: An operand in the update expression has an incorrect data type업데이트 작업은 엄격한 타입 규칙을 가집니다: ADD는 숫자와 set(SS/NS/BS)에서만 작동하고, DELETE는 set에서만, list_append는 두 개의 list를 받습니다. DynamoDB는 쓰기 시점에 항목의 현재 속성 타입에 대해 표현식을 평가합니다 — 그래서 같은 요청이 한 항목에서는 성공하고 속성이 다른 타입을 지닌 다른 항목에서는 실패할 수 있습니다. 가까운 사촌은 보낸 값 의 타입이 연산자에 결코 맞을 수 없을 때 표현식 파싱 시점에 더 일찍 거부됩니다:
ValidationException: Invalid UpdateExpression: Incorrect operand type for
operator or function; operator: ADD, operand type: LIST왜 발생하나요
ADD counter :one인데counter가 문자열로 저장됨 — 예: 항목이5(타입N) 대신"5"(타입S)로 가져와짐.- list(
L) 피연산자가 있는ADD tags :t—ADD는 list가 아니라 set 으로 수집합니다. list는SET+list_append로 추가됩니다. mylist가 map, set, 또는 스칼라인list_append(mylist, :v)— 두 인수 모두 list여야 합니다(단일 요소를 한 항목 list로 감싸세요).- set 요소 타입 불일치 — 저장된 숫자 set(
NS)에 대한 문자열 set(SS) 피연산자의ADD/DELETE, 또는 그 반대. - 항목 간 타입 드리프트 — 혼합 작성자(오래된 가져오기, 다른 서비스)가 같은 속성을 일부 항목에서는
N으로, 다른 항목에서는S로 남겨, 업데이트가 가끔만 실패합니다.
어떻게 고치나요
카운터: 값을 숫자로 저장하고 숫자 피연산자를 보내세요:
UpdateExpression: 'ADD #c :one', ExpressionAttributeValues: {':one': 1} // {N: "1"} — not a stringlist:
list_append와 함께SET을 사용하고 새 요소를 list로 감싸세요:UpdateExpression: 'SET #l = list_append(if_not_exists(#l, :empty), :new)', ExpressionAttributeValues: {':new': ['item'], ':empty': []}set:
ADD/DELETE피연산자를 저장된 속성과 같은 set 타입으로 유지하세요(SS는SS와,NS는NS와).드리프트한 항목을 고치세요 — 속성이 잘못된 타입을 지닌 항목을 찾아 한 번 다시 쓰세요. "같은 업데이트가 일부 항목에서 실패" 증상은 항상 코드가 아니라 데이터입니다.
타입 드리프트는 대부분의 콘솔에서 보이지 않습니다 — DynoTable 데스크톱 앱은 각 속성의 실제 저장된 타입을 값 옆에 표시하므로, 문자열인 "5" 카운터가 즉시 눈에 띕니다.
관련 오류
- Float types are not supported — SDK 측의 숫자 타입 마찰.
- Number overflow
- Type mismatch: key element does not match schema
- 학습: Update expressions · Atomic counters · Data types
References
- Using update expressions in DynamoDB — Amazon DynamoDB Developer Guide
- TransactWriteItems — Amazon DynamoDB API Reference
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
공식 AWS 문서(위 링크)를 기준으로 2026-07-13에 마지막으로 검증되었습니다.