WFM API 409 Conflict when migrating Zendesk schedules

Does anyone know why I am getting 409 Conflict on the PUT /api/v2/wfm/schedules endpoint? We are trying to migrate Zendesk availability schedules, but Genesys Cloud rejects the payload if the shift overlaps with existing constraints. In Zendesk, this was just a warning, so the strict validation is blocking our bulk import script.

resource "genesyscloud_wfm_schedule" "zendesk_migration" {
 for_each = var.zendesk_schedules
 name = each.value.name
 
 # Critical: Explicitly handle conflicts to avoid 409
 lifecycle {
 ignore_changes = [
 # Ignore transient constraint checks during initial bulk apply
 schedule_settings
 ]
 }
 
 schedule_settings {
 user_id = each.value.user_id
 start_date = each.value.start_date
 end_date = each.value.end_date
 
 # Ensure timezone alignment to prevent overlap false-positives
 timezone_id = "Australia/Sydney" 
 }
}

This is caused by Genesys Cloud enforcing hard constraints on WFM schedule overlaps, unlike Zendesk’s soft warnings. The 409 Conflict indicates a direct collision with an existing shift or holiday rule in the target org.

When migrating bulk data, manual validation fails. Use Terraform to pre-process the schedule list. Check for existing genesyscloud_wfm_schedule resources first. If a conflict exists, delete or merge the old entry before applying the new Zendesk-derived schedule.

Also, verify timezone IDs. A mismatch between Zendesk’s UTC offsets and Genesys’s IANA timezone IDs often creates phantom overlaps. Align the timezone_id in the HCL resource to match the org’s default. This resolves the 409 by ensuring the API sees compatible time boundaries.