EventBridge duplicate events despite idempotency key

We’re seeing duplicate routing:conversation events in EventBridge. The Node.js consumer checks the idempotency-key header before processing, but it’s still firing twice. Here’s the quick check:

if (seen.has(req.headers['idempotency-key'])) return;

The keys match perfectly. Is Genesys sending retries for 200 OKs? Or is this a race condition in the SDK listener?