Skip to content

[Bug] UpdateItem AttributeUpdates DELETE returns empty Attributes with UPDATED_NEW #120

@yesyayen

Description

@yesyayen

Describe the bug

UpdateItem with AttributeUpdates that uses Action: DELETE on a Map attribute, with ReturnValues: UPDATED_NEW. The DELETE removes the attribute, and the UPDATED_NEW return mode asks for the new value of any attribute that was added or updated (not deleted). Real DynamoDB returns the response with no Attributes field at all. ExtendDB returns the response with an empty Attributes map (Attributes: {}).

To Reproduce

Items present:

[
  {
    "pk": {
      "S": "p"
    },
    "sk": {
      "S": "s"
    },
    "map_attr": {
      "M": {
        "child": {
          "S": "old"
        }
      }
    }
  }
]

Request (UpdateItem):

{
  "TableName": "test-table",
  "Key": {
    "pk": {
      "S": "p"
    },
    "sk": {
      "S": "s"
    }
  },
  "AttributeUpdates": {
    "map_attr": {
      "Action": "DELETE"
    }
  },
  "ReturnValues": "UPDATED_NEW"
}

Expected behavior

DynamoDB responds with HTTP 200:

{}

Actual behavior

ExtendDB responds with HTTP 200:

{
  "Attributes": {}
}

Environment

  • ExtendDB version: 0.1.0
  • Operating system: macOS 26
  • Rust version (if building from source): 1.94
  • Client SDK/driver and version: CLI
  • Deployment method (binary, container, source): source

Logs / stack trace

(Not applicable: this divergence is detected by differential wire-level comparison against real Amazon DynamoDB; no ExtendDB log is required to reproduce.)

Additional context

Detected by an automated DynamoDB conformance harness. Classifications: BODY_SHAPE_MISMATCH

Checklist

  • I have searched existing issues for duplicates
  • I have included the ExtendDB version and environment details
  • I can reproduce this with the latest release

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions