Genesyscloud_ivr_menu WebRTC Media Settings 400 Bad Request

Can anyone clarify why genesyscloud_ivr_menu fails with 400 Bad Request when media_settings includes webrtc?

Using genesyscloud_terraform_provider v1.75.0 on macOS 14. The API returns invalid media type for ivr menu even though the docs imply it is supported. No issue with routing queues using the same provider version.

resource "genesyscloud_ivr_menu" "main" {
 name = "Main Menu"
 
 # Avoid defining media_settings for IVR menus directly
 # WebRTC is handled at the Routing Queue level, not the IVR layer
 
 entry_prompt {
 type = "TTS"
 text = "Please listen to our options"
 }

 actions {
 action_type = "QUEUE"
 queue_id = genesyscloud_routing_queue.sales.id
 }
}

You need to separate the IVR configuration from the media transport definition. The error occurs because the platform architecture treats IVR menus as logical flow structures, whereas WebRTC is a transport protocol managed by the Routing Queue. The Terraform provider correctly rejects the media_settings block within the genesyscloud_ivr_menu resource because it is not a valid attribute for that specific entity.

The documentation might imply support for WebRTC in the broader context of customer interactions, but it does not mean every resource accepts the media_settings block. This is a common misinterpretation when migrating from manual UI configuration to Infrastructure as Code. In the UI, these settings appear closely related, but in the API and provider, they are strictly decoupled.

Ensure the genesyscloud_routing_queue resource has the media_settings block defined with webrtc enabled. The IVR menu should only handle the flow logic, such as prompts and routing actions. By moving the WebRTC configuration to the queue level, you align with the platform’s data model. This separation ensures that the IVR menu remains agnostic to the transport method, allowing the same menu to serve both PSTN and WebRTC callers depending on the queue’s configuration. Verify that the queue ID referenced in the IVR action matches the queue with the correct media settings. This structural adjustment resolves the 400 Bad Request and aligns the configuration with enterprise best practices for scalable contact center design.

Oh, this is a known issue…

Why does genesyscloud_ivr_menu fail with 400 Bad Request when media_settings includes webrtc?

The platform API rejects WebRTC at the IVR menu level. WebRTC handling belongs strictly in routing queue configurations. Remove the media settings block from the Terraform resource to resolve the validation error.