Web Messaging Config API returning 400 when setting launcher position

Hey folks, running into a weird issue with the Genesys Cloud Web Messaging configuration API. I’m trying to automate the UI customization for our new deployment using the Terraform provider, but I’ve hit a wall with the launcher settings.

I’ve got the basic deployment created via the genesyscloud_webmessaging_deployment resource, and the widget shows up fine. But I need to pin the launcher to the top-left and change the primary color to match our brand hex code. I’m trying to patch the configuration using the PUT /api/v2/webmessaging/deployments/{deploymentId} endpoint directly to test the payload before committing it to the state file.

Here’s the JSON payload I’m sending in the request body:

{
 "launcher": {
 "position": "top-left",
 "customization": {
 "primaryColor": "#FF5733",
 "launcherIcon": "default"
 }
 }
}

The API keeps responding with a 400 Bad Request. The error message is pretty vague: “Validation failed for launcher position”. I’ve checked the docs, and top-left is definitely a valid enum value. I’ve also tried bottom-left and top-right, same result. It’s like the API is ignoring the string value or expecting an object instead of a string for the position.

I’m using a valid OAuth token with the webmessaging:deployment:write scope, so auth isn’t the issue. I can read the current config just fine with a GET request. The response shows the launcher object exists, but it’s nested differently than I expected in the docs. Maybe the structure changed recently?

Has anyone else seen this behavior? I’m wondering if I need to include the entire configuration object in the PUT request instead of just the launcher section. The docs hint at partial updates being supported, but maybe that’s not the case for this specific endpoint. I’ll try sending the full payload next, but it feels clunky. Any insights would be appreciated.