Webhooks events not received by one of my endpoints

Hello!

Right now, I’m testing out the webhook integration on my account. I registered three different endpoints, one points to a local server exposed via ngrok, one points to pipedream, and the other one points to a function app hosted on Azure.The first two endpoints always received events, while the third one didn’t receive any.

I tried isolating the issue by calling the third endpoint manually using postman. So far, after checking the logs, it was triggered by that.

I was wondering if you could help me out on this one - maybe you guys can check if the events are sent to the third endpoint?

Here’s the endpoints for reference:
1st one: https://e68f-49-144-216-153.ngrok-free.app/api/stuart-uk/webhook-events?code=
2nd one: https://eos79rduf02rqs.m.pipedream.net?customQuery=123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123
3rd one: https://locate2u-XXY.azurewebsites.net/api/stuart-uk/webhook-events?code=<hidden_code>

Let me know what you think. Thanks!

EDIT:

I was wondering if you could help me out on this one - maybe you guys can check if the events are sent to the third endpoint?

I meant to say was: can you check in your logs if an event was actually emitted to the third endpoint or not? This would help me isolate the issue and see if it’s something wrong on my end or not. Thanks!

Hello,

The issue seems to be on your configuration, because you seem to be using a localhost setup, which explains why it works when you test, but not from the outside.

Cheers.

Hey @Harold ! I don’t get what you mean.

My issue is that the third endpoint (the one hosted on azure) does not receive any webhook events, whilst the other 2 do.

See attached screenshot of the ngrok endpoint and pipedream endpoint receiving events


You saw the 502 error because that was the expected behavior - sending a GET request will not work. A POST request will return a 502 error was well, but I would still see in my logs that the sandbox environment sent an event (which doesn’t happen for the third endpoint)

@Harold I edited the post to further explain what I mean. Thanks!

Hello,
Sorry I checked the events on one package, and it failed on 2 different endpoints.

I can see the events are sent, but are not received. I don’t have more details regarding the error code.

Best,

I can see the events are sent, but are not received. I don’t have more details regarding the error code.

Got it. This is interesting.

Thanks for checking this out though, @Harold

No problem, let me know if you find where the issue was !

Hey, @Harold !

I know you mentioned that you don’t have any more details regarding the error code. But I was wondering if there’s anything else on your end - may it be the status code or something else - that could help me work on this?

Thanks!

Hey,

It seems that we receive 400 errors from your server, and we do 5 retries per webhook, I hope this helps!

Cheers,
Harold

Hey, @Harold!

I want to circle back on this issue, as it still exists on our end.

Now, I tried something different, where I created a totally new azure function app that listens for HTTP requests and logs it. When I register the new endpoint to my sandbox dashboard, that function app didn’t receive any events from your end. But when you manually send a request or visit that endpoint, it logs the request

Would it be possible for us to hop on a call and talk through this? I would really love to show you how I set things up and it would be really helpful if we can pinpoint where the issue is

Let me know what you think. Thanks!

Hello Ian,

Thank you for reaching out and sharing the details of the issue you’re facing.

Upon reviewing the situation, I noticed that our system is successfully sending the webhook events but the delivery is failing as we receive 400 errors.

To delve deeper, I personally tested a POST request to your endpoint using Postman and got a response indicating that your function is set up correctly for HTTP requests, but it’s specifically looking for a “name” parameter in the query string or request body.

While my expertise with Azure Function has its limits, I did some digging to possibly shed light on the issue and I believe it could be related to one of the following:

  • A format mismatch where your Azure Function might expect a different format. You can cross check the expected format against the examples of our documentation.
  • The function’s code, from what I read, a common issue is to not parse the request body or headers correctly.
  • Configuration, especially security and networking. For this reason we provide a list of public IPs from which you can receive webhooks events from us.
  • The error handling since if there’s an error in processing the data, your function might not be set up to log or respond with appropriate messages, which would explain the error.

Please note that while I’d love to discuss this issue further over a call, it seems to lie on your Azure Function as we’ve verified that our events are sent correctly, and as you mentioned, they’re being received on other endpoints.

I hope you find the above information helpful and please let us know if you’re able to pinpoint the issue or if there is anything we can help you with.

Best regards,

Hey, @Andres!

Thanks for looking on this one earlier this month.

I was wondering, did anyone else integrated with you who had their server hosted on Azure, and also encountered the same issue as I had?

Thanks!

Hey, everyone! I found the cause of the issue

I reviewed one of the requests you guys sent to one of my endpoints, and I saw that you used the value application/json in the Accept-Encoding header, as shown in the image below.
image

It turns out - that’s the reason why your servers get a 400 Bad Request error from our Azure Function apps. Now, I looked into other documentations like MDN to see a list of valid values for that header, and I don’t see application/json as part of it.

I was wondering - was this a design choice for this setup? Or do you have any specific reason for this setup?

Let me know what you think. Thanks!

Hi @ian.salazar,

Thank you for your follow-up.

While we haven’t come across similar issues with other clients hosting their servers on Azure, it appears that the presence of “application/json” in the Accept-Encoding header might be causing you this problem.

As you rightly pointed out, “application/json” is not a standard value for the Accept-Encoding header, which is meant to indicate the compression algorithms that the client (or webhook consumer in this case) can use to understand the content.

I have forwarded this information to our dedicated team for further investigation and, if applicable, they will work on implementing a fix.

Rest assured that I will keep you updated as soon as any information becomes available and, in the meantime, feel free to reach out if you have any additional questions or comments.

Sincerely,

Nice

Thanks, @Andres ! This really means a lot

Hi @ian.salazar,

I hope your week is going well.

I wanted to update you that we’ve applied a fix. The Accept-Encoding header value in our webhooks now includes: deflate, gzip, br instead of the content-type.

Please conduct new tests to verify if the Azure Function is functioning correctly and don’t hesitate to reach out if you need any further assistance.

Best regards,

Hey, @Andres !

I just tested it out - it works now. We can now receive events from your end

Thanks for fixing this one!