Stuck on a configuration validation error while attempting to bind a specific APAC BYOC trunk to a new predictive dialer campaign. The environment utilizes 15 distinct BYOC trunks for Singapore and regional failover, all currently showing active SIP registration status. When submitting the campaign configuration via the REST API endpoint /api/v2/outbound/campaigns, the response returns a 409 Conflict. The error payload indicates a duplicate resource constraint on the trunk_id field, despite the trunk being exclusively assigned to this campaign instance. The trunk configuration includes standard SIP credentials and outbound routing rules that function correctly for manual dialing and other non-predictive use cases. We have verified that no other active campaigns reference this specific trunk ID, and the predictive routing pool settings are aligned with the carrier’s concurrent session limits. The issue persists across multiple API retries and different campaign names, suggesting a backend state inconsistency rather than a transient network glitch. Is there a known limitation or hidden state lock associated with BYOC trunks when used in predictive routing segments within the Asia/Singapore region? We need to understand if this is a validation bug or a required configuration step missing from the API documentation.
if i remember correctly, this 409 conflict often stems from how trunk uniqueness is handled during migration from zendesk. in zendesk, phone numbers were just attributes on the agent or ticket, but in genesys cloud, the trunk_id is a unique resource identifier for the predictive campaign. you likely have another active campaign already bound to that specific apac byoc trunk. check your existing campaigns via the api to see if any are currently using that trunk_id. if so, you either need to pause that campaign or use a different trunk for the new predictive setup. the api is strict about one-to-one mappings for outbound trunks in predictive mode, unlike the more flexible routing in zendesk talk. try querying /api/v2/outbound/campaigns to find the conflicting campaign first.
The documentation actually says…
Trunk exclusivity is enforced at the campaign level to prevent resource contention.
Verify no other predictive campaign holds that specific BYOC identifier.