Notification API WebSocket dropping events after 5 minutes of inactivity

Is there a clean way to maintain a persistent WebSocket connection to the Genesys Cloud Notification API for conversation events without triggering a silent disconnect?

I am building an automated quality scoring service that listens to conversation:conversation events in real-time to trigger evaluation workflows. The connection initializes correctly using the genesys-cloud-purecloud-platform-client SDK, but the stream consistently dies after exactly 5 minutes if no conversation events are fired. There is no explicit error event or close code returned by the client library, just a silent cessation of data flow.

const ws = new NotificationWebSocket();
ws.addEventListener('message', (event) => {
 const data = JSON.parse(event.data);
 processEvent(data);
});
ws.connect();
  • I have attempted to implement a custom ping/pong handler by sending a JSON-RPC ping to the endpoint, but the server does not respond, and the connection remains open but unresponsive.
  • I tried subscribing to a high-frequency event type (conversation:participant:status) to keep the channel warm, but this introduces unnecessary load and still does not prevent the eventual drop during quiet periods.

The documentation suggests the server handles keep-alives, but my implementation suggests otherwise. Is there a specific header or subscription configuration required to prevent this timeout?