Size of hashkey has exceeded the maximum size limit of 2048 bytes
TL;DR — DynamoDB はキーの長さを制限します: パーティション(ハッシュ)キー の値は最大 2048 バイト、ソート(レンジ)キー の値は最大 1024 バイト で、UTF-8(または生のバイナリ)バイトで測定されます。キーが制限を超える書き込みは拒否されます。キーを短くしてください。長い値をハッシュ化するか、かさばるデータを非キー属性に移します。
意味
ValidationException: One or more parameter values were invalid: Size of hashkey has exceeded the maximum size limit of2048 bytes
# sort-key variant:
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(はい、"of2048" のスペース欠落はサービスの実際のメッセージにあります。)キー属性は DynamoDB によってインデックス化され物理的にパーティション化されるため、その長さは 400 KB のアイテム制限より遥かに下に制限されています。パーティションキーの値は 1〜2048 バイト、ソートキーの値は 1〜1024 バイト でなければなりません。バイト数はエンコードされたサイズ(文字列は UTF-8、バイナリは生のバイト)です。マルチバイト文字は1つより多く数えられます。これは HTTP 400 の ValidationException、クライアント側の問題で、キーが縮小するまでリトライ不可です。
発生する理由
- パーティションキーとしての長い文字列 — URL、完全なドキュメント、エンコードされた blob、または連結された複合キーをそのままキー値として使用する。
- 冗長な複合ソートキー —
#で結合された多くのセグメントが合計で 1024 バイトを超える。 - キー内の Base64 / シリアライズされたデータ — エンコードがバイト数を制限を超えて膨らませる。
- マルチバイトテキスト — UTF-8 エンコードが文字数の示唆より大きい非 ASCII コンテンツ。
修正方法
- 長い値をハッシュ化します — 決定論的なダイジェスト(例: SHA-256、約 32 バイト)をキーとして格納し、完全な値を別の非キー属性に保持します。
- よりコンパクトなキーを選びます — かさばるフィールドの代わりに、より短い自然な識別子。
- 複合キーを短くします —
#で結合されたソートキーを構成するセグメントをトリムまたは省略します。 - 大きすぎるコンテンツをキーから通常の属性に移します(それは 400 KB のアイテム制限に収まればよいだけです)。
DynoTable から接続する
書き込む前に、下書きのキー値をアイテムサイズ計算ツールに貼り付け、2048/1024 バイトの上限に対してバイト数を確認しましょう。DynoTable では、⌘K で開いたテスト用アイテムに対して、ステージング(⌘S)が大きすぎるキーを捕まえてくれます。
複合キーを短くするときは、クエリビルダーでクエリを試作しましょう。プロファイルの切り替えは ⌘P、Settings → Profiles では Test Connection を実行します。AWS に接続するとインストールを参照してください。
出典
- Constraints in Amazon DynamoDB (2026-07-13 時点で検証)
- Supported data types and naming rules (2026-07-13 時点で検証)
関連するエラー
- Item size has exceeded the maximum allowed size — 400 KB のアイテム全体の制限(キーごとの制限との対比)。
- Item size to update has exceeded the maximum allowed size — 更新中のキー/インデックスサイズ制限。
- ValidationException (overview)
- 学習: アイテムサイズと 400 KB の上限 · 複合プライマリキー
参考資料
- Constraints in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。