Genesys Cloud Guest API WebSocket authentication handshake fails with 401

Building a custom Kotlin chat UI using the WebSocket-based Guest API instead of the default widget. Following the docs, I’m sending the initial auth message with the organizationId and guestToken, but the server immediately closes the connection with a 401 Unauthorized frame. The token is generated via POST /api/v2/conversations/messaging/addresses and looks valid, yet the WebSocket handshake never completes. Here’s the initial payload I’m sending: {"type": "auth", "organizationId": "org-123", "guestToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}. Am I missing a required header or is there a specific format for the guestToken in the WebSocket protocol that differs from the REST API?