Issue with Webhook URL Check

Hello,

I am currently setting up some new tables in Baserow and am having a problem creating webhooks.

I want to trigger a webhook in n8n from Baserow. Both systems are running in separate Docker containers and are reachable at the addresses:
https://crm.Company.de (Baserow)
https://n8n.Company.de (n8n)

my webhook url looks like this:
"https://n8n.company.de/webhook-test/test"

There is no authentication required on the webhook.

If I now use this in Baserow to create a webhook call then I get the following error message every time:

“Invalid URL.
The webhook URL is invalid, inaccessible or prohibited.”

I can call the webhook via cUrl without problems.

Does anyone have a tip why it does not work in Baserow?

2 Likes

Hey @baserow_bln,

Do you have your webhook set up for Post requests? If you are self hosting n8n I made a Baserow Trigger node that I have been using without issues over Christmas.

Hey @joffcom,
yep I tried POST and GET for the webhook (on both ends, Baserow and n8n), same result.

I will try your trigger node and then give feedback here.

Thanks & greetings

I just tried the node and get a similar error message.

400 - {“error”:“ERROR_REQUEST_BODY_VALIDATION”,“detail”:{“url”:[{“error”:“Invalid URL”,“code”:“invalid_url”}]}}

If I understand it correctly the node creates the webhooks in baserow via the api according to the specifications in n8n. It seems that the validation of the webhook url does not work then again.

Hey @baserow_bln,

That is a bit unexpected, I have used both the manual webhook and the node with self hosted and hosted versions of Baserow.

There isn’t really any validation that happens, here is an earlier post I made about manually setting up the webhook.

When you use the node does it register the webhook ok and when the request fails does the node get triggered?

Is there anything special with the n8n install maybe queue mode? Can you also confirm the versions of n8n and Baserow, I can do some more testing tomorrow to see if I can spot anything odd.

As a test maybe pointing the webhook in Baserow to webhook.site will show something.

good morning,

no, the webhook is not created in Baserow when I use the node. I think this is the same behavior as when I try to create the webhook manually in Baserow, when I click save the url check takes place and fails with the mentioned error message which again prevents creating the webhook.

I am wondering if my network setup is the cause here. I have a Pi-Hole running as DNS server and ad-blocker in my network. In the Pi-Hole I have created static DNS records for the sub domains in my network, i.e. the request is routed directly to an IP in my network. On the server runs a proxy that takes over the whole encryption and depending on the called domain the forwarding to the corresponding Docker container.

What surprises me is that calling the webhook via Curl works without any problems.

Baserow 1.13.3
n8n 0.209.2

tried to call the n8n webhook with curl from a bash inside the baserow container and got the following response:

root@Baserow1-13-3:/# curl -X POST https://n8n.company.de/webhook-test/test1
{“message”:“Workflow was started”}root@Baserow1-13-3:/#

so the webhook is reachable from inside the baserow container…hmm

I have also deactivated the Pi-hole as a test, but without success.

if i set up a webhook endpoint on any webhook test site and use the address in Baserow then it works

for example:
https://webhook.site/136c5e7c-a420-4f44-a4a6-f56b071f2790

works.

Are there any local IP address spaces blocked in Baserow for Webhooks?
like 192.168.XXX.XXX ??

No blocks that I am aware of, can you share your configuration for both?

Have you also checked the Baserow logs to see if it shows anything else? It sounds like the issue is going to be something in your environment so it would just be a case of working out what it is.

Have you tried using the n8n ip directly to see what happens?

Yes this is exactly it. By default for security reasons we use a library that will block webhooks that resolve to a local IP.

Please see these env variables: Configuring Baserow // Baserow

You can completely disable this checking with BASEROW_WEBHOOKS_ALLOW_PRIVATE_ADDRESS=true or use the other env vars at that link to allow specific local IPs.

ahh okay, perfect! I was already looking for a page where all the possible env variables for baserow are explained but didnt found the one you linked in your post.

I will set the mentioned variable and give feedback then.

Okay, the webhook works now! :slightly_smiling_face:

@joffcom & @nigel: Thanks a lot for your help!

Ha well that is good to know, I am going to remember this one.