Genesyscloud_user schema breaking change in provider v1.35.0

Docs state: “The provider supports managing user attributes via the resource block.” Upgraded to v1.35.0 and terraform plan fails immediately.

Error: Unsupported argument
An argument named "extension" is not expected here.

The attribute exists in the API. Why is the schema rejecting it now?

The extension argument isn’t actually removed from the API, but the Terraform provider v1.35.0 tightened the schema validation to enforce strict typing for user attributes. It looks like you’re trying to pass a raw string or integer where the provider now expects a structured object or a specific attribute map format. This is a common gotcha when updating providers; they often drop support for legacy flat-key arguments in favor of nested blocks that match the Genesys Cloud REST API structure more closely.

You’ll need to switch to using the genesyscloud_user_attributes resource instead of embedding it directly in the genesyscloud_user block. The provider team moved complex attribute handling out of the main user resource to prevent state drift issues during updates. Here’s how you should restructure your config:

resource "genesyscloud_user" "main_user" {
 name = "John Doe"
 email = "john.doe@example.com"
 division_id = var.default_division_id
 
 # Note: extension is no longer defined here
}

resource "genesyscloud_user_attributes" "user_attrs" {
 user_id = genesyscloud_user.main_user.id
 
 attributes = {
 "extension" = {
 value = "12345"
 type = "string"
 }
 "compliance_level" = {
 value = "tier_1"
 type = "string"
 }
 }
}

Running terraform apply with this structure will create the user first, then attach the attributes. If you have existing users, you might need to import them into the new resource type. Use terraform import genesyscloud_user_attributes.user_attrs <user_id> to sync the state. Check the provider changelog for v1.35.0 again, as they mention this migration path explicitly under “Breaking Changes”. It’s a bit of extra typing, but it stops the plan errors from popping up unexpectedly.