Skip to content

Bug: EventBridge envelope reports incorrect path #3503

Closed
@dreamorosi

Description

@dreamorosi

Expected Behavior

When using the EventBridgeEnvelope to parse an event, the error returned by the envelope should contain the correct path so that customers can easily find the root cause of the issue.

Current Behavior

This is the error emitted:

ParseError: Failed to parse envelope. This error was caused by: [
  {
    "code": "invalid_type",
    "expected": "string",
    "received": "undefined",
    "path": [
      "name"
    ],
    "message": "Required"
  }
].

The correct path should be ["detail", "name"] since the validation applies to the detail field.

Code snippet

{
  "version": "0",
  "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "111122223333",
  "time": "2017-12-22T18:43:48Z",
  "region": "us-west-1",
  "resources": [
    "arn:aws:ec2:us-west-1:123456789012:instance/i-1234567890abcdef0"
  ],
  "detail": {
    "instance_id": "i-1234567890abcdef0",
    "state": "terminated"
  },
  "replay-name": "replay_archive"
}

and using the following code:

const schema = z.object({
  'name': z.string()
});

const parsed = EventBridgeEnvelope.parse(event, schema);

Steps to Reproduce

N/A

Possible Solution

No response

Powertools for AWS Lambda (TypeScript) version

latest

AWS Lambda function runtime

22.x

Packaging format used

npm

Execution logs

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingcompletedThis item is complete and has been merged/shippedparserThis item relates to the Parser Utility

Type

No type

Projects

Status

Shipped

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions