Webhook (using Respond to Webhook node) only executes the first node and doesn't wait for the workflow to finish

Hello n8n community,

I’m facing an issue with a webhook-triggered workflow that is supposed to wait for a full execution before sending a response. Instead, it seems to respond immediately, and only the first node (the Webhook trigger) executes.

My Goal:
I have a React frontend with a chatbot component. When a user sends a message, it makes a POST request with a JSON body to an n8n webhook. The n8n workflow should then:

  1. Process the message with an AI Agent node (using Gemini and a Supabase tool).

  2. Wait for the AI Agent to generate a response.

  3. Send the AI Agent’s final text response back to my React application using a Respond to Webhook node.

The Problem:
When I call the production URL of my active workflow , the execution log shows that only the Webhook node runs successfully (“Success in 1ms”). The rest of the workflow (the AI Agent and Respond to Webhook nodes) does not execute at all.

My frontend receives an empty response, which causes a client-side error (Unexpected end of JSON input), because it’s expecting a JSON object with the AI’s answer.

My Workflow Structure:
The workflow is set up as follows:
Webhook → AI Agent → Respond to Webhook

Webhook Node Configuration:

  • HTTP Method: POST

  • Response Mode: Using ‘Respond to Webhook’ Node (I have explicitly set this).

  • Path: bott

What I’ve Tried:

  1. Production URL & Active Workflow: I have confirmed that I am calling the production URL (not the test URL) and that the workflow is active .

  2. Simplified Test Workflow: I created a minimal test workflow: Webhook → Set → Respond to Webhook. This simple workflow exhibits the exact same problem : only the Webhook node executes, and an empty response is sent. This seems to indicate the issue is not with the AI Agent node itself.

  3. Frontend Code: My React fetch call is standard:
    await fetch(“http://localhost:5678/webhook/bott”, {
    method: ‘POST’,
    headers: { ‘Content-Type’: ‘application/json’ },
    body: JSON.stringify({ message: “Hello” }),
    });