WebRTC handshake fails during Zendesk widget replacement

GET /api/v2/telephony/users/credentials returns 401 Unauthorized when migrating from Zendesk Talk. The token expires immediately after generation, unlike the persistent sessions in Zendesk.

  • Verified OAuth scopes include telephony:read
  • Tested with Genesys Cloud SDK v3.0.2

The 401 error typically stems from mismatched OAuth token lifecycles rather than scope issues. Genesys Cloud access tokens default to a 24-hour TTL, but refresh tokens require explicit offline_access scope to persist beyond that window. Ensure the client ID generating the token has the offline_access scope enabled in the admin portal under Organization > OAuth Clients. Without this, the access token expires, and subsequent calls to /api/v2/telephony/users/credentials fail because the session is no longer valid. Also verify the JWT signature matches the registered public key in your integration settings. If using a service account, check that the user associated with the token still has the Telephony User role assigned. Revoking and re-authorizing the app often clears stale token caches that cause immediate expiration upon generation.