Problem
GC sits at 2024-7.812.0. The Express middleware catches screen.recording.completed events from Architect flow b3c9-4e21, but the callback URL gets hammered with a 408 timeout when the session ends. Payload size looks fine, but it’s hitting the limit. JWT validation passes on the initial hit, yet the edge retry can’t verify the signature.
app.post('/webhooks/screen-recording', express.json({ limit: '5mb' }), (req, res) => {
const sig = req.headers['x-genesys-signature'];
if (!validateJWT(sig, req.body)) return res.status(401).send('invalid');
processRecording(req.body);
res.status(200).send('ok');
});
Console shows the first POST lands, but the retry arrives forty-five seconds later carrying a stale nonce. Mic stays hot during long transfers, so the media server definitely pushes the final chunk. EventBridge consumer downstream isn’t moving the queue forward. Logs point straight to a race condition in the webhook delivery layer when the recording URL rotates. Doing jack all with the retry headers since they keep resetting the signature timestamp.
[2024-08-12T14:32:01Z] ERROR: WebhookDeliveryService::retry - nonce_expired for event_id=rec_8f9a2c