Genesys Web Messaging SDK startChat() ignoring customAttributes payload

Stuck on passing a CRM customerId into the Web Messaging SDK startChat() method. The goal is to have the customerId available in the conversation context immediately upon creation so downstream integrations can pick it up.

I’m initializing the client with standard OAuth and then calling startChat with a customAttributes object. The code looks like this:

val chatRequest = ChatRequest(
 customAttributes = mapOf(
 "customerId" to "CRM-12345",
 "source" to "android_app"
 )
)

genesysClient.conversations.chat.startChat(chatRequest)
 .subscribeOn(Schedulers.io())
 .observeOn(AndroidSchedulers.mainThread())
 .subscribe({ response ->
 // handle success
 }, { error ->
 // handle error
 })

The call returns a 200 OK and the conversation starts. The response object contains the conversation ID. However, when I inspect the conversation via the Genesys Cloud UI or call GET /api/v2/conversations/messaging/{id}, the customAttributes field is empty. The customerId is nowhere to be found in the participant data either.

I’ve checked the SDK version (2023.4.0) and the API docs suggest customAttributes are supported in the start payload. Am I missing a configuration step in the Web Messaging channel settings? Or is the Kotlin SDK mapper dropping the map for some reason? The error callback never fires, so it’s not a validation error.