Hi all. @genesyscloud/platform-client-v2 throws a 401 Unauthorized when fetching softphone configuration when the session token refreshes during an active WebRTC stream. @genesyscloud/platform-client-v2 is locked to @genesyscloud/platform-client-v2@3.12.0 on Node 18.17.0. The softphone widget initializes fine, but around the three minute mark the audio cuts completely. @genesyscloud/platform-client-v2 logs Signaling error: connection reset by peer followed by a failed call to update the conversation. @genesyscloud/platform-client-v2 handles token rotation automatically via the refreshToken callback, yet the new bearer string never attaches to the WebSocket handshake. @genesyscloud/platform-client-v2 fails on forced re-auth with platformClient.Auth.login() because the STUN servers at turn.genesisys.com drop the candidate exchange immediately. @genesyscloud/platform-client-v2 shows iceConnectionState flipping to failed before the new token can validate. It’s doing jack all for the queue now. Architect flow routes to a standard ACD skill group, so the backend doesn’t see a disconnect until the fallback timer hits thirty seconds. Webhook logs show the participant state stays connected while the client side already shows a red phone icon. @genesyscloud/platform-client-v2 switching to @genesyscloud/genesyscloud-webrtc didn’t help either. The underlying WebSocket client ignores the Authorization header rewrite on reconnection attempts. @genesyscloud/platform-client-v2 handles the initial handshake without issues, but the keep-alive pings fail once the JWT expires. Network traces confirm the TURN allocation request returns 403 Forbidden with reason: invalid credentials. App credentials in the integration dashboard are verified and the scopes include user and ucm. The softphone config JSON has useTurn: true and stunServers pointing to the default list. Nothing changes when we swap to a fresh browser profile or disable extensions. The WebSocket closes with code 1006 and the retry loop just spins.
{
"error": "invalid_grant",
"error_description": "Refresh token expired or revoked",
"sdk_version": "3.12.0",
"endpoint": "softphone configuration",
"ice_state": "failed",
"webrtc_version": "1.2.4"
}