Think of DataLoader like a shopping list - you don’t drive to the store for every single item, you group them all into one trip to save gas. But the Zoom Contact Center API is treating my batched requests like I’m trying to buy the whole store at once. Is the batching logic actually hitting the endpoint? No, it’s just timing out.
{
"error": "Request Timeout",
"message": "The server took too long to respond to the batched user query",
"code": "ZCC_GATEWAY_TIMEOUT"
}
edit: This is happening specifically on the /v2/contact_center/users path when the DataLoader cache key exceeds 50 IDs.
Is the batchSize in the DataLoader config set too high for the payload limits? If the request body exceeds the maximum byte count allowed by the /users endpoint, the server might just drop the connection without a 429.
Could you check if the timeout value is being triggered before the response header is even received?
import pandas as pd
import time
# Avoid the bulk timeout entirely. Use a generator.
def fetch_users(user_ids):
results = []
for uid in user_ids:
resp = requests.get(f"https://api.zoom.us/v2/users/{uid}", headers=headers)
results.append(resp.json())
time.sleep(0.1)
return pd.DataFrame(results)
Three coffees. Still hitting timeouts with batching? It’s because the Zoom /users endpoint hates oversized payloads. Just iterate and sleep.