Form Trigger Node Connected to a Switch Node Connected to a Form Node

Describe the problem/error/question

I have a Form Trigger Node Connected to a Switch, which is in turn connected to a Form Node. When I execute the workflow and choose the option that directs the switch to the Form Node, The Form Node does not open in order for me to fill in the fields !!!

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

I have a Form Trigger Node Connected to a Switch, which is in turn connected to a Form Node. When I execute the workflow and choose the option that directs the switch to the Form Node, The Form Node does not open in order for me to fill in the fields !!!

Information on your n8n setup

  • n8n version:

  • Database (default: SQLite):

  • n8n EXECUTIONS_PROCESS setting (default: own, main):

  • Running n8n via (Docker, npm, n8n cloud, desktop app):

  • **Operating system:
    **
    Debug info

    core

    • n8nVersion: 2.25.7
    • platform: docker (self-hosted)
    • nodeJsVersion: 24.15.0
    • nodeEnv: production
    • database: sqlite
    • executionMode: regular
    • concurrency: -1
    • license: enterprise (production)
    • consumerId: fa933ce3-28ee-4cd1-823f-c0da6baba1fd

    storage

    • success: all
    • error: all
    • progress: false
    • manual: true
    • binaryMode: filesystem

    pruning

    • enabled: true
    • maxAge: 192 hours
    • maxCount: 30000 executions

    client

    • userAgent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/149.0.0.0 safari/537.36
    • isTouchDevice: false

    cluster

    • instanceCount: 1
    • versions: 2.25.7
    • instances:
      • instanceKey: 3b33a823-9096-4480-9155-3e11f6eaaa3a, hostId: main-84aa7681ee8e, instanceType: main, instanceRole: leader, version: 2.25.7
    • checks:
      • check: hostid-clash, status: succeeded, warnings: -
      • check: lifecycle, status: succeeded, warnings: -
      • check: split-brain, status: succeeded, warnings: -
      • check: version-mismatch, status: succeeded, warnings: -

    Generated at: 2026-06-18T21:54:35.507Z

@tmalouli multi-step forms render in the browser page by page, not on the canvas. when you submit the first page at the form url, the workflow runs, hits the Switch, and the Form node it routes to becomes the next page in that same tab. it never opens in the editor, so if youre clicking Execute workflow and watching the canvas, thats why you dont see it.

open the actual form url, pick Post Blog Article Text, and the second page should load right in that tab. if youre already doing that and it just sits in Waiting without advancing, thats a known bug with branching right before a Form node (issues 11544 / 12428), and dropping a no-op node like an Edit Fields between the Switch and the Form has fixed it for others.

Given you’re self-hosted on Docker, this is most likely a WEBHOOK_URL / N8N_EDITOR_BASE_URL mismatch, not the Switch node itself n8n redirects the browser to a “waiting” URL built from that, when it moves to the next Form node, and if it’s still pointing at an internal/incorrect address instead of your actual public URL, the browser just hangs trying to load it, which looks exactly like “the form won’t open.”

The other possibility: your Switch node’s rule isn’t actually matching the value from the Form Trigger (e.g. comparing it as a Number when Form Trigger fields output Strings), so the item gets silently dropped and never reaches the Form node at all.

To tell which one it is, go to Executions in the left sidebar and open that run:

  • If status shows “Waiting” and the Switch node’s output wired to the Form node shows 1 item passed, it’s the URL issue. Check your docker-compose/.env for WEBHOOK_URL and N8N_EDITOR_BASE_URL and confirm they exactly match the public URL you’re accessing n8n from (including https:// and no trailing slash mismatch).
  • If the execution finishes as “Success” immediately and that same output shows 0 items it’s the routing condition. Open the Switch node > Rules, and check the comparison type on that rule and it almost always needs to be String, not Number.

I found the problem and I fixed it.

The issue was caused by forcing a custom Origin header in Caddy, which broke n8n’s chained Form / waiting webhook flow and produced /webhook-waiting/* / NaN errors.

Fix: remove or comment out the header_up Origin https://your-domain.com line in the Caddy reverse proxy block, then restart Caddy.

Hi @tmalouli ,

This happens because of how mid-workflow Form nodes handle browser redirects in n8n.

When you submit the first form (Form Trigger), your browser tab sends a POST request to n8n. The workflow executes the Switch node and reaches the second Form node, where n8n pauses the execution and waits for input. However, n8n cannot automatically pop open or redirect your active browser tab to the second form unless you explicitly configure a redirect or response!

How to Fix This:

Option 1: Redirect the user to Form 2 upon submission (Recommended)

If you want the user to immediately fill out the second form after submitting the first:

  1. Open your second form node (Form Post Blog Article Text) and copy its Production Form URL (found at the top of the node panel, e.g., https://your-n8n-instance/form/…).
  2. Open your first form node (Choose Workflow).
  3. Under OptionsCompletion Page:
    • Change the response to Redirect to URL.
    • Paste the Form 2 Production URL.

Now, as soon as someone submits Form 1, their browser will automatically redirect to Form 2!

Option 2: Dynamic Redirect via “Respond to Webhook” Node (If each Switch branch goes to a different Form)

Since you have a Switch node with 5 different options (Create, Update, Rewrite, etc.), each branch likely goes to a different Form node. To dynamically send the user to the correct form:

  1. Open the first Form Trigger node and go to Options → set Response Mode to On Received or When Last Node Executes (or connect a Respond to Webhook node).
  2. Configure a Respond to Webhook node after each branch with a 302 Redirect HTTP response status code pointing to that branch’s specific Form URL.

Option 3: Send the Form 2 URL via Email/Slack

If the second form is meant for human approval or delayed input, add an Email or Slack node right before Form 2 to send the unique Form 2 link to the user so they can click and fill it out when ready.

Let me know if setting up the Redirect URL solves it for your flow!

Thanks!