I can’t seem to figure out why the Screen Recording API is returning a 400 Bad Request when attempting to filter recordings by specific BYOC trunk identifiers. We are managing 15 BYOC trunks across the APAC region, specifically targeting the Singapore and Jakarta endpoints. The environment is running Genesys Cloud version 2023-11 with the latest Architect updates applied. When querying the /api/v2/recordings endpoint with a custom filter for trunk_id matching our primary SIP trunk credentials, the response payload explicitly states that the filter criteria are invalid. This is puzzling because the same trunk_id values work perfectly in the standard Reporting dashboard for call detail records. We have verified the SIP registration status on all SBCs, and they are stable with no TLS handshake failures or 408 timeouts. The issue seems isolated to the recording retrieval logic rather than the underlying trunk connectivity. We are using the REST API directly from a Python script running in our local AWS instance, ensuring no proxy interference. The error persists even when simplifying the query to request only the most recent 10 recordings, suggesting a fundamental mismatch in how the recording service indexes trunk metadata compared to the CDR service.
The specific error message returned is {"code": "bad_request", "message": "Filter criteria contains unsupported field: trunk_id"}. This contradicts the public documentation which lists trunk_id as a valid filterable attribute for recording searches. We have attempted to use the outbound_route ID instead, but this does not provide the granularity needed for our compliance reporting on carrier-specific call quality. Is there a known limitation with BYOC trunk metadata indexing in the recording service? We are observing this behavior consistently across all 15 trunks, not just a single endpoint. The timestamp on the recordings aligns perfectly with the CDR data, so the recordings are being created successfully. The problem is strictly in the retrieval and filtering stage. We need to extract recordings for specific carrier failover events, and without the ability to filter by trunk, we are forced to download the entire recording pool and process it locally, which is inefficient and risks missing data due to retention policies. Any insights into whether this is a documentation error or a backend indexing delay would be appreciated.