Has anyone figured out why the /api/v2/outbound/campaigns endpoint is rejecting our bulk contact list uploads with a 422 status code specifically citing malformed_contact_list?
we are trying to integrate our crm data directly into gc outbound via the platform api using the python sdk version 1.6.8. the csv files are generated programmatically and validated against the schema before upload. however, when the import job starts, it fails immediately.
the error response body indicates that the contact list reference is invalid or the associated data does not match the expected format for the dialer. we have checked the column mappings in architect and they seem correct. the issue persists across different orgs in our multi-org setup.
is there a specific character encoding requirement for the contact list that we might be missing? or is this a known issue with the current api version? our timezone is pst and we are running this during off-peak hours to avoid rate limits. any insights would be appreciated.
This looks like a common issue when pushing high-volume contact lists through the Genesys Cloud API. The 422 error often triggers not because the CSV format is wrong, but because the payload exceeds the default size limits or hits rate thresholds during bulk ingestion.
Check the max_contacts_per_batch setting in your request body. The platform SDK might be sending chunks that are too large for the outbound service to parse efficiently. Try splitting your CSV into smaller batches of 500-1000 records per API call. Also, verify that all required fields like external_id and phone_number are strictly typed. Missing optional fields usually don’t cause 422s, but malformed data types in required fields will.
Ran a similar JMeter test last week with 10k contacts. Reducing the batch size and adding a 500ms delay between POST requests stabilized the throughput. Ensure your Python script handles the retry-after header if you hit 429s. This approach prevents the import job from timing out or rejecting the entire list due to transient processing limits.
“max_contacts_per_batch”: 500
The point above is correct about the payload size. The outbound API chokes on large chunks during peak load. Splitting the CSV into smaller batches prevents the 422 error. I usually see this fail when concurrent uploads spike the queue.
Have you tried validating the contact list against the strict schema requirements for legal hold flags before uploading? The 422 error often stems from silent validation failures where PII triggers a legal hold flag during bulk ingest, causing the outbound service to reject the payload as malformed. Ensure your CSV does not contain data that conflicts with chain of custody headers or digital channel metadata standards. The platform SDK might be sending chunks that are technically valid but fail deeper compliance checks. Review the error logs for any mention of legal_hold_tag or metadata validation exceptions. Splitting the batch helps with size, but if the content itself violates export or discovery policies, the upload will still fail. Check the audit trails for your previous successful uploads to compare the metadata structure. This usually resolves the issue when standard size adjustments do not work.