EventBridge Rule not triggering for Genesys Cloud `routing.queue.member.stateChanged` despite valid ARN

We are migrating our real-time dashboard from long-polling to AWS EventBridge to reduce latency in our eu-central-1 environment. The goal is to capture queue member state changes without hitting the API rate limits we’ve been struggling with.

The integration seems configured correctly on the Genesys side. We’ve created the event stream and retrieved the ARN. However, the rule in EventBridge is never firing, even when agents explicitly log off or change availability in the Genesys Cloud UI.

Here is the rule pattern we are using:

{
 "source": [
 "genesys.cloud"
 ],
 "detail-type": [
 "Genesys Cloud Event"
 ],
 "detail": {
 "eventType": [
 "routing.queue.member.stateChanged"
 ]
 }
}

The target is a simple Lambda function that just logs the event to CloudWatch. The Lambda permissions are set, and the IAM role for the EventBridge rule has lambda:InvokeFunction rights.

We’ve verified the ARN matches exactly what was returned by the Genesys Cloud API call to /api/v2/integrations/eventbridge. The response code was 200 OK.

POST /api/v2/integrations/eventbridge
Content-Type: application/json
Authorization: Bearer <token>

{
 "name": "Prod-EventBridge",
 "arn": "arn:aws:events:eu-central-1:123456789012:event-bus/genesys-prod"
}

Checking the CloudWatch logs for the Lambda shows zero invocations. We’ve tried broadening the detail-type to just "Genesys Cloud Event" to catch everything, but still nothing. The EventBridge console shows the event bus is receiving events from other sources, so the bus itself is active.

Is there a specific delay or batch window we’re missing? Or is the eventType string case-sensitive in a way the docs don’t mention? We’ve double-checked the spelling against the developer portal.