Aggregated size of all range keys has exceeded the size limit of 1024 bytes

TL;DR — DynamoDB は ソート(レンジ)キーの値を 1024 バイト、パーティション(ハッシュ)キーの値を 2048 バイト に制限します(UTF-8 エンコードで測定)。ソートキーの値が 1024 バイトを超えました。通常は詰め込みすぎた複合キーです。短くする、長い部分をハッシュ化する、または大部分を非キー属性に移してください。

意味

ValidationException: One or more parameter values were invalid: Aggregated size of all range keys has exceeded the size limit of 1024 bytes

# on DynamoDB Local you get one combined sentence instead, naming neither key:
ValidationException: Hash primary key values must be under 2048 bytes, and range primary key values must be under 1024 bytes

これは 400 KB のアイテム制限とは別の、厳格な キーサイズ 制限です。ソートキーの値(UTF-8 バイトで測定)は最大 1024 バイト、パーティションキーの値は最大 2048 バイトです。それを超えると、書き込みは HTTP 400 の ValidationException で拒否されます。キーが小さくなるまで リトライ不可 のリクエストエラーです。

発生する理由

  • 長すぎる複合ソートキー — 値が 1024 バイトを超えるまで多くのセグメントを連結する(ORG#…#PROJECT#…#DOC#…#veryLongTitle…)。
  • 大きな値をキーにエンコード — 完全な URL、パス、説明、またはシリアライズされた blob をソートキーに入れる。
  • マルチバイト文字 — 非 ASCII テキストは UTF-8 で1文字あたり 2〜4 バイトかかるため、「短く見える」文字列がバイト制限を超えることがある。
  • パーティションキーが大きすぎる — 2048 バイトのハッシュキー制限に対する同じ種類のエラー。

修正方法

  1. 複合キーを 実際に照会するセグメントだけに削り、人間が読める埋め草を捨てます。
  2. 長い部分をハッシュ化します — 短い決定論的なダイジェスト(例: 切り詰めた SHA-256)をキーに格納し、完全な値を通常の属性として保持します。
  3. 大部分をキーから外します — ソートキーはアイテムを識別/順序付けるべきで、そのペイロードを運ぶべきではありません。長いテキストは(400 KB のアイテム予算を享受する)非キー属性に入れます。
  4. 文字ではなくバイトで測定します — UTF-8 エンコードして数えます。特に非 ASCII データの場合。

DynoTable で見る

書き込む前に、下書きのアイテムをアイテムサイズ計算ツールに貼り付け、キー属性のバイト数を確認しましょう。DynoTable では ⌘K でテーブルを開き、ステージング(⌘S)でテスト用のアイテムを作れば、キーが収まるかを確認できます — 大きすぎるキーはコミット前に弾かれます。

複合キーを設計し直すときは、短いキーセグメントでクエリビルダーから試作してみましょう。プロファイルの切り替えは ⌘P、Settings → Profiles では Test Connection を実行します。AWS に接続するインストールを参照してください。

出典

関連するエラー

参考資料

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

Console なしで DynamoDB を扱う

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

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