Terraform v1.35.0: genesyscloud_user schema change breaks existing state

Upgraded the Genesys Cloud Terraform provider to v1.35.0 this morning and immediately hit a wall during terraform plan. The genesyscloud_user resource schema appears to have changed, specifically around how phone_numbers or routing_profile_id are handled, causing a drift that wasn’t there in v1.34.0.

Here’s the relevant block from my users.tf:

resource "genesyscloud_user" "support_agent" {
 name = "Tessa Test"
 email = "tessa@example.com"
 
 phone_numbers {
 e164_number = "+15550199"
 phone_type = "MOBILE"
 }

 routing_profile_id = genesyscloud_routing_profile.support.id
}

The plan output complains that the phone_numbers block is now being treated as a set rather than a list, or perhaps the attributes inside have shifted. The error message is vague:

Error: Provider produced inconsistent result after apply

When applying changes to genesyscloud_user.support_agent, provider
"registry.terraform.io/mynah/genesyscloud" produced an unexpected new
value: was null, but now true.

I’ve verified the user exists in Genesys Cloud and the phone number is correct. The state file shows the old structure. Is this a known breaking change in v1.35.0? I tried importing the resource again with terraform import, but it just recreates the drift.

Also, the routing_profile_id seems to be triggering a re-creation of the user if I don’t comment it out, which is dangerous. I’m using Kotlin for the backend services, so I can’t just script a workaround easily. Has anyone else seen this schema shift? I’m stuck on v1.34.0 for now, but need to update for the new genesyscloud_routing_skill_group support.

Any ideas on how to force the state to match the new schema without losing the user resource?

The phone_numbers block changed to a set in 1.35.0. Try explicitly defining it as a list in your HCL to force the correct type conversion.

phone_numbers = [
 {
 label = "Work"
 number = "+441234567890"
 }
]

Check if that stops the drift.