I’m having trouble getting information back from a service (AssemblyAI in this case) via webhook on my self-hosted n8n (in Docker).
As far as I can tell, I’ve set it up correctly but obviously I’ve missed something.
- I have
command: start --tunnel in my docker-compose.yml
- I use an HTTP Request node to send a transcript request to Assembly’s API and pass in my webhook url
- In another workflow, I start with a Webhook Trigger node to receive the response from AssemblyAI
- The receiving workflow is Active
The problem is that the second workflow (receiving the transcript) never triggers. I’ve tested using a Wait node set to Webhook and now I’m trying a Webhook Trigger node but both either return 404 error or null to AssemblyAI when it tries to call the webhook to return my transcript.
AssemblyAI seems to be doing everything correctly — when I check it’s API output response, it has the same webhook url as my Webhook Trigger node (and it definitely completes the transcript quickly and tries to return it by calling the webhook), but it receives null or 404 error from n8n.
I’ve checked all the other self-hosted webhook topics here that I found through search and none of them were quite the same problem I’m having (external service can’t seem to access my webhook url despite tunnel and webhook set).
I’m not sure if I can share a useful node setup here to recreate the issue as obviously sharing my exact workflow would have a bunch of my API keys and url stuff that I don’t necessarily want to make public… But if you really can’t help without a node setup I can try to recreate it.
Information on my n8n setup
- n8n version: 1.115.3
- Database (default: SQLite): default(? not sure)
- n8n EXECUTIONS_PROCESS setting (default: own, main): No idea, probably default, I don’t have this set in env vars anywhere that I know of
- Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
- Operating system: Mac OS 13.7.8
Hi @Chris_TSU, did you activate your workflow?
I see that you’re selecting the production URL tab in the second image.
That production URL will only work when the workflow is activated.
If you’re in development pace, it would be better to try out test URL.
Yes my workflow is activated.
Interestingly, the workflow that sends the audio file to Assembly for transcription is also called via webhook and that one works just fine. It’s when Assembly tries to return the transcript to the webhook in the second workflow that it hits an error/null
As you mentioned that you are running self-hosted n8n on your Mac OS, I was wondering if you’re running it in localhost environment.
If you do, then Assembly AI won’t be able to reach to your workflow to trigger your webhook as it is hosted in your local environment.
Yes I am.
I thought the whole point of using n8n’s built-in tunnel via start –tunnel in docker-compose.yml was to expose public webhooks. I have a separate service not hosted locally that is triggering my first workflow, so it does seem to work. But for some reason AssemblyAI isn’t getting through.
Chris? Did you resolve the issue?
I am not sure if you like this way, but I think it works fine.
Instead of sending webhook_url to Assembly AI to get hooked back from the platform, I suggest you to add wait node and send http request with GET method again with queue id.
In this way, there might be some delay, but it will work perfectly.
I have been unable to get the webhook working. I’m wondering if the issue is on AssemblyAI’s end, since I can trigger the parent workflow via webhook (I’ve been having Cursor execute the parent workflow). But both the trigger workflow method and Wait for webhook method both stall forever.
I did eventually turn it into a simple looping GET request with a Wait node, which is not elegant but does work.
But it doesn’t solve the issue of why the webhook isn’t getting called properly and AssemblyAI is showing the response as either 404 or null