Analytics API - Scheduled Export - Inconsistent Data Volume - 429s

Right, so we’ve got a scheduled export job running - pulling conversation data from Genesys Cloud to Redshift via S3 staging. It’s been mostly stable, but the last three runs are showing wildly different record counts, despite the same date range and filter criteria. It’s… unsettling. Three coffees into debugging this.

Here’s the data flow - I’m trying to visualise this, so bear with me.

[GC Analytics API] --(Scheduled Export)--> [S3 Bucket] --(Redshift COPY)--> [Redshift Table]
  1. The export job is hitting https://api.genesyscloud.com/v3.1/analytics/export/jobs with a payload like this:
{
 "name": "Daily Conversation Export",
 "exportType": "CONVERSATION",
 "query": {
 "type": "EXPRESSION",
 "expression": "conversation.conversationId > '2024-01-01T00:00:00Z'"
 },
 "format": "CSV",
 "destination": {
 "type": "S3",
 "bucketName": "my-gc-export-bucket",
 "path": "daily_conversations/"
 }
}
  1. Redshift is running COPY conversations FROM 's3://my-gc-export-bucket/daily_conversations/' CREDENTIALS '...' DELIMITER ',' CSV.

The first run yielded 1.2 million records. The second, 850k. The latest? 520k. No changes were made to the export job or the Redshift COPY command. What’s baffling is the API isn’t returning an error. It’s a clean 200 OK. However, the logs are showing intermittent 429s (rate limit exceeded) during the export window - but we’re throttling the requests on our side to 5/second, which shouldn’t be an issue.

Something’s clearly off with the volume. It’s not a data discrepancy, it’s a missing data issue.