Web Messaging SDK startChat() CRM ID not persisting to interaction

The startChat() method in the Genesys Cloud Web Messaging SDK seems to ignore the attributes object I’m passing. I need to push a CRM customer ID into the session so our routing logic can pick it up.

const chat = await gcWebMessaging.startChat({
 attributes: {
 externalContactId: "CRM-998877"
 }
});

The chat connects fine. But when I check the interaction details via the API, the externalContactId is missing. It’s not in the initial message payload either. I’ve tried putting it in customAttributes as well. No luck. Is there a specific format required for these attributes to stick? Or does the SDK strip them out before sending?