EventBridge rule not firing for conversation events - pattern mismatch?

Just noticed that my EventBridge rule is silently dropping events from Genesys Cloud. The rule exists, the target Lambda is healthy, and I can invoke it manually. But zero events are arriving from the genesyscloud source.

I am using the standard conversation event pattern from the docs:

{
 "source": [
 "genesyscloud"
 ],
 "detail-type": [
 "Conversation Event"
 ],
 "detail": {
 "event_type": [
 "conversation-update"
 ]
 }
}

The Lambda logs show nothing. I added a CloudWatch metric filter to catch RuleNotMatched, and it is incrementing rapidly. This confirms the event is hitting EventBridge but failing the pattern match.

I verified the Genesys Cloud integration is active and sending events to the correct AWS account. The detail object in a sample event looks like this:

{
 "event_type": "conversation-update",
 "conversation_id": "abc-123",
 "timestamp": "2023-10-27T10:00:00Z"
}

This matches my rule exactly. I even tried broadening the pattern to just "detail-type": ["Conversation Event"] with an empty detail object, thinking maybe the nesting was wrong. Still no matches.

Is there a known issue with the detail field structure in Genesys Cloud events sent to EventBridge? Or is there a hidden field I need to include in the pattern? The documentation implies a direct mapping, but the metrics suggest a structural mismatch I cannot see.

How do I debug the exact payload EventBridge receives against the rule? I need to know why the filter is rejecting valid-looking events.