Trying to wire up a real-time trigger from Genesys Cloud to an AWS Lambda via EventBridge. The rule matches the source com.genesyscloud.events, and CloudTrail shows the rule is triggering. However, the target Lambda never executes. No logs in CloudWatch.
Here’s the EventBridge rule pattern:
{
"source": ["com.genesyscloud.events"],
"detail-type": ["Conversation Event"],
"detail": {
"event": ["conversation.created"]
}
}
The Lambda handler expects a standard EventBridge input:
def lambda_handler(event, context):
print(event)
return {
'statusCode': 200,
'body': 'Processed'
}
I’ve verified the IAM role attached to the Lambda has events:InvokeTargets and lambda:InvokeFunction permissions. The trust policy allows events.amazonaws.com.
What’s weird is that if I send a manual test event from the EventBridge console using the exact same JSON structure, the Lambda works fine. It’s only when the event comes from the Genesys Cloud integration that it drops silently.
Checked the EventBridge dashboard metrics. Invocations on the rule is incrementing. MatchingEvents is also up. But Invocations on the Lambda function itself is flat. Zero hits.
Could there be a serialization issue with the payload coming from GC? The detail object from GC is nested deep. Maybe the size is hitting a limit? Or is there a specific permission missing for cross-service invocation from a specific region?
The GC instance is in us-east-1. EventBridge and Lambda are also in us-east-1. No cross-region setup here.
Any ideas on why the rule matches but the target invocation fails silently? Looking at the dead-letter queue config next, but want to rule out basic setup errors first.