Trying to make sense of why the bulk export job for outbound campaign recordings is consistently failing with a 500 Internal Server Error when requesting metadata fields for legal discovery purposes.
We are using the Genesys Cloud Platform API v2 (analytics/v2/bulkexport/jobs) to schedule exports for the last quarter. The environment is EU1. The export configuration includes standard recording details but specifically requests the disposition_code and agent_id metadata for chain of custody verification. The job status moves to running but then transitions to failed after approximately 15 minutes.
The error payload returned is minimal:
{
"message": "An internal error occurred while processing the request",
"status": 500,
"code": "internal.server.error"
}
We have verified that the service account has the recordings:view and analytics:export:view scopes. Direct API calls to retrieve individual recording metadata via GET /v2/recordings/{recordingId}/metadata work perfectly fine and return the expected disposition codes. This suggests the issue is not with permissions but with the bulk processing pipeline handling specific metadata joins.
The problem is critical for our current legal hold request. We need the full audit trail for these specific outbound interactions. The standard UI export option only provides the audio file and basic timestamps, which is insufficient for our compliance team’s requirements. They need the disposition data linked directly to the recording file in the S3 bucket.
We attempted to reduce the date range to a single day, but the job still fails. We also tried excluding the disposition_code field, and the job completes successfully. This points to a specific issue with how the bulk export engine handles the join between the recording metadata and the outbound campaign disposition tables.
Is there a known limitation or bug with the disposition_code field in bulk exports for outbound campaigns? Are there any workarounds, such as using a different API endpoint or splitting the export into smaller, non-overlapping time chunks? Any insight into the backend behavior would be appreciated, as we are blocked on delivering these records to counsel.