- 
        Couldn't load subscription status. 
- Fork 494
Open
Labels
Description
Describe the bug
Having an event handler for user migration in Cognito:
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
...
public void CognitoMigrateUserHandler(CognitoMigrateUserEvent cognitoEvent, ILambdaContext context)
{
   ...
}
Throws an exception during serialization of CognitoMigrateUserEvent:
Amazon.Lambda.Serialization.SystemTextJson.JsonSerializerException: 
Error converting the Lambda event JSON payload to type Amazon.Lambda.CognitoEvents.CognitoMigrateUserEvent: 
The JSON value could not be converted to System.Boolean. 
Path: $.response.forceAliasCreation | LineNumber: 0 | BytePositionInLine: 401.
The data sent from cognito was:
{
    "version": "1",
    "triggerSource": "UserMigration_Authentication",
    "region": "...",
    "userPoolId": "...",
    "userName": "...",
    "callerContext": {
        "awsSdkVersion": "...",
        "clientId": "..."
    },
    "request": {
        "password": "...",
        "validationData": null,
        "userAttributes": null
    },
    "response": {
        "userAttributes": null,
        "forceAliasCreation": null,
        "enableSMSMFA": null,
        "finalUserStatus": null,
        "messageAction": null,
        "desiredDeliveryMediums": null
    }
}
Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
I expect it to serialize correctly and then call the method.
Current Behavior
It throws a deserialization exception.
Reproduction Steps
Setup a Cognito UserPool to have a Migrate user trigger with this target:
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
...
public void CognitoMigrateUserHandler(CognitoMigrateUserEvent cognitoEvent, ILambdaContext context)
{
}
Possible Solution
My guess is that the types of the properties in the response-object needs to be nullable.
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
Amazon.Lambda.CognitoEvents: 4.0.0
Amazon.Lambda.Serialization.SystemTextJson:2.4.4
Targeted .NET Platform
.NET 8
Operating System and version
Windows 11