HTTP 429 Too Many Requests
{"message": "Maximum concurrent purge operations exceeded. Queue depth at 50."}
Running a Python batch job against /api/v2/interactions/archive/purge keeps choking on the storage lock. It’s supposed to handle the interaction ID references and retention period matrices, but the permanent deletion directives get dropped once concurrency passes twenty. Schema validation against the data warehouse constraints passes locally, yet the atomic DELETE operations trigger automatic index cleanup failures halfway through the iteration.
def execute_purge(batch_ids, retention_config):
auth_header = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
body = {
"interactionIds": batch_ids,
"retentionMatrix": retention_config,
"permanentDeletion": True,
"legalHoldVerification": False
}
return requests.delete(f"{endpoint}/api/v2/interactions/archive/purge", headers=auth_header, json=body)
Webhook callbacks to the external retention platform fire on success, but the soft-delete verification pipeline doesn’t run when the queue backs up. You can’t really force the index cleanup manually either. Tracking purge latency shows storage recovery rates flatlining after the first three batches. Audit logs for compliance governance show the format verification step timing out. The index cleanup triggers never actually kick in. Looking at the EventBridge logs, the payload structure shifts slightly on retry. Still getting the 429s despite backing off the concurrent calls.