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?
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!
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.
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)
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?
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
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.
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.
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?
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.
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.