Reporting API drops ACMA retention dataset with 422 on Sydney edge during nightly export

Ran the weekly compliance export against mypurecloud.com.au again last night. The Architect flow triggers a Data Action to pull conversation metrics for the ACMA six-year retention mandate. Latency from the Sydney edge to the internal webhook is holding steady at 140ms, but the /api/v2/analytics/conversations/details/queries endpoint keeps rejecting the payload with a 422 Unprocessable Entity. The response body just shows “field”: “filter.type”, “message”: “Invalid filter criteria for region ap-southeast-2”.

Tried switching the filter to conversation.participant.address with the +61 2 prefix, same error. The REST SDK v2.18.3 documentation says region-specific filters should parse fine, but the payload validation looks hard-coded to US formatting rules. Lambda console logs show the JSON structure matches the schema exactly. Local validator passes. Pushed a raw curl request from a Melbourne VPC to bypass the Terraform runner, still hits the 422.

Network traces show the request actually routes to the .au domain correctly. DNS resolves without issues. The weird part is the analytics query works perfectly when run manually through the UI. The API won’t accept the filter through code. Checked the org settings, ACMA compliance flags are enabled. Number porting records synced fine yesterday. Maybe the reporting engine doesn’t like the timezone offset being set to Australia/Sydney while the API client runs in America/Los_Angeles? The request headers include x-genesys-org-id and proper OAuth bearer tokens. Token expiry isn’t the problem. The validation engine is doing jack all with the region flag. Logs attached below. Payload validation keeps rejecting the filter array. No idea what field the engine actually wants.

{
 "filter": {
 "type": "equals",
 "field": "conversation.participant.address",
 "value": "+61298765432"
 },
 "groupBy": ["conversation.wrapupcode"],
 "metrics": ["duration"]
}