diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSTypesMessageConverter.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSTypesMessageConverter.java index 35126ccb4..3fe9abe36 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSTypesMessageConverter.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSTypesMessageConverter.java @@ -85,7 +85,10 @@ protected Object convertFromInternal(Message message, Class targetClass, @ if (targetClass.getPackage() != null && targetClass.getPackage().getName().startsWith("com.amazonaws.services.lambda.runtime.events")) { PojoSerializer serializer = LambdaEventSerializers.serializerFor(targetClass, Thread.currentThread().getContextClassLoader()); - Object event = serializer.fromJson(new ByteArrayInputStream((byte[]) message.getPayload())); + byte[] payloadBytes = message.getPayload() instanceof String + ? ((String) message.getPayload()).getBytes(StandardCharsets.UTF_8) + : (byte[]) message.getPayload(); + Object event = serializer.fromJson(new ByteArrayInputStream(payloadBytes)); return event; } else {