Trying to understand why my Spring Boot service consistently hits a 429 Too Many Requests error when performing bulk user updates via the Genesys Cloud Java SDK. The documentation states: “If the rate limit is exceeded, the API returns a 429 status code with a Retry-After header indicating the number of seconds to wait before retrying.”
I have configured the ApiClient with standard connection pooling, but the SDK does not seem to respect the Retry-After header automatically. Here is my current configuration:
spring:
genesys:
client-id: ${GC_CLIENT_ID}
client-secret: ${GC_CLIENT_SECRET}
base-url: https://api.mypurecloud.com
pool-size: 20
max-connections: 100
My code iterates through a list of users and calls usersApi.updateUser(userId, user). When the batch size exceeds 50, I start receiving 429 errors. Should I implement a custom exponential backoff strategy in the controller, or is there a built-in retry mechanism in the PureCloudPlatformClientV2 that I am missing? I want to avoid blocking threads manually if the SDK handles this internally.