aws / aws/aws-lambda-java-libs

Scheduled Event (V2) contains non-object detail parameter (it is a string)

Open
#479 1 comment 2 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
548
Forks
241
Avg merge
2d 5m
Merged PRs (30d)
11

Description

When I'm using ScheduledEvent as a source event in the lambda handler where actually Amazon EventBridge Scheduler's Schedule is a trigger for the function, I'm getting
```
An error occurred during JSON parsing: java.lang.RuntimeException
java.lang.RuntimeException: An error occurred during JSON parsing
Caused by: java.io.UncheckedIOException: com.amazonaws.lambda.thirdparty.com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('
{}
')
at [Source: (ByteArrayInputStream); line: 1, column: 318] (through reference chain: com.amazonaws.services.lambda.runtime.events.ScheduledEvent["detail"])
at com.amazonaws.services.lambda.runtime.serialization.factories.JacksonFactory$InternalSerializer.fromJson(JacksonFactory.java:199)
Caused by: com.amazonaws.lambda.thirdparty.com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('
{}
')
```
because "detail" parameter in that event is not an object - it is a string. Look at this sample below from Java logger:
```
Event: {
"version": "0",
"id": "4e6638b7-b892-4482-9762-8c58d4e71ebb",
"detail-type": "Scheduled Event",
"source": "aws.scheduler",
"account": "xxx",
"time": "2024-05-06T10:58:00Z",
"region": "eu-west-1",
"resources": [
"arn:aws:scheduler:eu-west-1:xxx:schedule/default/xxx"
],
"detail": "{}"
}
```
IMO AWS should fix this event source for sending object-compatible field or we should implement new class e.g. `ScheduledV2Event` with a `String` type, not a Map. It looks like the "old" Scheduled Event is not compatible with the new Scheduled V2 Event.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.