Architect Call Control API missing trunk metadata for BYOC failover

Does anyone understand why the Call Control API omits sip_trunk_id when querying interactions routed through our secondary BYOC trunks during carrier failover events?

Background

We manage 15 BYOC trunks across APAC regions using Genesys Cloud. Our outbound routing logic prioritizes primary carriers, with automatic failover to secondary SIP endpoints upon detecting registration timeouts or SIP 408 responses. The environment is stable, and standard voice analytics via /api/v2/analytics/interactions/realtime correctly populate trunk metadata for primary routes.

Issue

When failover triggers, interactions routed to the secondary BYOC trunk appear in the Architect Call Control API (/api/v2/architect/callcontrol/interactions) without the sip_trunk_id field. This breaks our correlation logic for cost attribution and carrier-specific SLA reporting. The leg_id is present, but the trunk association is null. This occurs specifically when the failover happens within the first 500ms of call setup.

Troubleshooting

  • Verified SIP registration status for all secondary endpoints; all show ‘Registered’.
  • Confirmed outbound routing rules are correctly configured with failover logic.
  • Checked raw SIP messages via packet capture; the From header correctly identifies the secondary carrier.
  • Tested with primary trunk; metadata populates correctly.
  • SDK version: Genesys Cloud Java SDK 2.14.0.

Is this a known limitation of the Call Control API during rapid failover events, or is there a configuration gap in our trunk settings?