Hello everyone. I have a problem with a Data Action during our after-hours routing. We use a custom REST Data Action to check our external on-call database. If an emergency call comes in at night, the flow queries the API to find the doctor on duty. Sometimes, the external API gives a 429 Too Many Requests error. When this happens, the Data Action takes the failure path and the call goes to a generic voicemail. This is not good for emergencies. Is there a way to make the Data Action retry automatically when it sees a 429 error? I checked the configuration but I do not see a retry setting. Please help me with this.
Hey! We ran into this exactly when migrating our old PBX over and setting up the Teams integration. We had a Data Action hitting the Graph API to check user presence and kept getting throttled with 429s. Genesys Cloud Data Actions do not have a built-in retry mechanism.
The failure path in Architect is your only catch block. What we did was put a Loop block in the Architect flow itself.
If the Data Action fails, we check the Action.Error.status variable. If it equals 429, we play a short hold music prompt for three seconds, and then the loop tries the Data Action again up to three times.
Yep, the Loop block is the way to go. We have three separate orgs for dev, staging, and prod, and we hit rate limits all the time during load testing our staging environment. Just be careful with how many retries you configure.
If your external API is returning a 429, hitting it again immediately might just lock you out longer. Make sure you add a delay like the other reply suggested.
We use a Wait block set to five seconds before looping back. Also, check if your external API returns a Retry-After header.
You cannot easily read that header in Architect right now, so a static delay is your best bet.