I’m completely stumped as to why the BYOC trunk selection block in our primary IVR flow is consistently routing calls to the Singapore trunk instead of the Jakarta trunk, despite the contact’s phone number matching the Jakarta DID range. We have 15 BYOC trunks configured across APAC, and the routing logic relies on a data action that evaluates the destination number against a CSV file containing region-specific prefixes.
The flow uses a ‘Select Trunk’ block with a dynamic expression. When testing via the flow simulator, the correct trunk is selected. However, live calls from the Jakarta region are hitting the Singapore trunk, causing higher latency. I have verified the CSV data and the regex pattern in the data action. The issue seems to occur only when the call volume exceeds a certain threshold, suggesting a potential caching issue or a race condition in the trunk availability check.
Here is the payload structure used in the data action:
{
"contact": {
"phoneNumber": "+6281234567890"
},
"dataAction": {
"name": "GetRegionPrefix",
"parameters": {
"prefix": "+62"
}
}
}
Has anyone encountered similar behavior with dynamic trunk selection in high-volume environments? Are there known issues with the BYOC trunk availability API under load?