Why does the Genesys Cloud Outbound API returns a 400 Bad Request with INVALID_CONTACT_STATE when attempting to update contact status via a POST to /api/v2/outbound/contacts/{contactId}?
Background
Managing 15 BYOC trunks across APAC regions. The environment runs on Genesys Cloud version 2024.02. We utilize Architect flows to handle post-call dispositions, which trigger an API call to update the contact record in the outbound campaign. The SIP trunks are registered via BYOC with custom carrier failover logic.
Issue
The error occurs specifically when the call is routed through our secondary BYOC trunk in Singapore (AP-Southeast-1). Calls routed via the primary trunk in Tokyo update the contact state without issue. The error payload is:
{
"message": "Contact state is invalid for the current campaign configuration.",
"code": "INVALID_CONTACT_STATE"
}
Troubleshooting
- Verified the
contactIdandcampaignIdmatch the active campaign. - Confirmed the
disposition_codebeing sent is valid and mapped in the campaign settings. - Checked SIP logs; the call completed successfully with a 200 OK from the carrier.
- Tested the API call directly via Postman with identical headers and body; it fails only when the originating trunk ID is associated with the Singapore region.
Is there a regional limitation or a specific BYOC trunk configuration that blocks outbound contact state updates?