One or more parameter values were invalid

TL;DR — DynamoDB はリクエストの形状は受け入れましたが、その中の 特定の値 を拒否しました: 空のセット、キー内の空文字列、スキーマと一致しない型の値、または許可されない場所の null です。メッセージの残りを読んでください。正確なパラメータを示します。そしてその値を修正します。

意味

ValidationException: One or more parameter values were invalid: <specific reason>

これは ValidationException(HTTP 400)で、そのメッセージ本文がルールを破った1つの値を特定します。AWS はメッセージを「遭遇した特定のエラーによって異なる」とだけドキュメント化しています。プレフィックスは総合的で、重要なのはそれに続く部分です。たとえば、AttributeValue がキーに空文字列を含めない、セットが空であってはならない、またはキー値の型がスキーマと一致しない、などです。そのままでは リトライ不可 です。値を変える必要があります。

発生する理由

メッセージの末尾が説明する典型的な理由(正確な表現はケースによって異なります):

  • キー属性内の空の文字列またはバイナリ値 — 非キーの文字列とバイナリ値は空であることが許されますが、テーブルとインデックスのキーは許されません。
  • 空のセット — メンバーが 0 の SS/NS/BS。セットはどこでも空でない必要があります。空のリストとマップは問題ありません。
  • キーの型の不一致(例: expected: S actual: N)— 値の型がテーブルのキースキーマと一致しない。
  • それを受け付けない属性に渡された null 値、または undefined フィールドに null を出力するマーシャラー。
  • その型に対して 範囲外の値number overflow を参照)。

修正方法

  1. 完全なメッセージを読みます。 DynamoDB は問題のあるパラメータと正確なルールを示します。その文字列が修正です。
  2. キーに実際の値を与えます — パーティション/ソートキーに決して空文字列や空のバイナリを入れないでください。
  3. 空のセットを落とします — セットにメンバーがないときは属性を省略するか、代わりにスカラー/NULL を格納します。
  4. 型をスキーマに一致させます — 数値キーを数値として、文字列キーを文字列として送ります。ラッパーを交差させないでください。
  5. 書き込む前にアイテムから undefined/null を取り除きます(Document Client の removeUndefinedValues オプションが一般的なケースを処理します)。

よくある質問

"One or more parameter values were invalid" は何を意味しますか? リクエスト内の特定の値が DynamoDB のルールを破っています。多くはキー内の空文字列、空のセット、キースキーマと一致しない型、または許可されない null です。完全なメッセージが正確なパラメータと理由を示します。

空文字列が時々しか失敗しないのはなぜですか? DynamoDB は非キー属性には空文字列を許可しますが、キー属性では拒否します。パーティションやソートキー内の空文字列は "An AttributeValue may not contain an empty string" を発生させます。通常の属性内の同じ値は受け入れられます。

関連するエラー

参考資料

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynamoDB では実行できない本物の SQL(JOINs、GROUP BY、集計)を実行する高速な DynamoDB デスクトップクライアント。ビジュアル編集と、あなた自身の Bedrock キーで動く AI エージェントを備えています。

30日間無料トライアル、クレジットカード不要 — その後は期限のない Free プラン。