Webhook: Increase timeout or do not try retries

Hi,

I see in the doco stating that if a webhook didn’t receive 200 or 204 response within 3 seconds, it will do 3 retries after a certian moment.

However, our endpoint is working fine but it just takes some time to process - it could be less than 3 seconds or it could be more than 10 seconds but the process is working fine.

It causes issues such as:

  1. An initial webhook trigger takes more than 3 seconds (but it was actually processed successfully)
  2. The webhook thinks it has timed out and it does the 1st retry after 5 minutes
  3. Before it does the 1st retry, another webhook (the same webhook) is triggered and it took less than 3 seconds (processed successfully)
  4. That 1st retry is triggered and takes less than 3 seconds
  5. So the 1st retry overwrites the data that was actually processed in the 2nd webhook trigger on step 3, the data is now polluted

To resolve this, I reckon it is the best to increase the timeout or don’t do any retries, do we have an option for that?

This is the receiver for your reference. We are using C#:

public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
    var requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    var content = new StringContent(requestBody, System.Text.Encoding.UTF8, "application/json");
    var url = "A URL to a different endpoint to process the request";
    HttpClient httpClient = new HttpClient();
    HttpResponseMessage result = httpClient.PostAsync(url, content).Result;
    return new OkObjectResult(result);
}

Hi @brett.lim
Thanks for reaching out to us and welcome to our community, I am happy to help here!
I totally understand the issue you are running into and I am happy to reach out to our Engineering team if there is a way to increase the time out for a specific app/customer.
I will come back to you as soon as I have more information.
Cheers,
Elisa