/api/v2/analytics/icap/conversations returns 422 on date range filter with Studio SNIPPET payload

Step one: the outbound flow triggers a SNIPPET action to serialize interaction timestamps before pushing to our internal reporting bucket. We’re running CXone 24.02 with the Analytics Reporting API v2. The SNIPPET builds a JSON payload targeting /api/v2/analytics/icap/conversations with a dateFrom and dateTo filter set to UTC. Response comes back as a hard 422 Unprocessable Entity with {"code":"invalid_request","message":"The date range exceeds the allowed window of 30 days."}. The environment definitely has the 30-day limit configured in the reporting settings, but the payload caps the range at 14 days. Step two: I swapped the endpoint to /api/v2/analytics/icap/details just to test the authentication chain. That one returns a clean 200 with populated arrays. The SNIPPET action uses application/json and passes the Bearer token via the Authorization header. Console logs show the exact same timestamp formatting across both calls. Switching to ISO 8601 with explicit Z suffix didn’t change anything. The request body looks valid, but the Icap endpoint keeps rejecting it like the parser is choking on the timezone offset. Logs show the request hitting the analytics gateway at 09:14 GMT and dropping immediately.

{
 "dateFrom": "2024-02-10T00:00:00Z",
 "dateTo": "2024-02-24T23:59:59Z",
 "pageSize": 100
}

The 422 response doesn’t include the internal trace ID, so tracing it through the support portal feels like doing jack all.