Webhook returns old, cached response text instead of executing, despite successful execution logs

Hello, I’m facing a server-side caching issue.
My workflow runs successfully in the “Executions” tab, and the final “Respond to Webhook” node shows the correct JSON output.
However, when I call the production webhook URL from my application, the browser’s Network tab shows that the server is returning the raw expression text (JSON.stringify(…)) instead of the executed result.
I have already tried clearing all browser cache, deactivating/reactivating the workflow, and saving it multiple times. The server seems to be stuck serving an old, broken version of the workflow publicly.
Here is the proof:

  1. The “Executions” tab showing a successful run:
  2. The browser’s “Network > Response” tab showing the broken text response:
    Can you please help me investigate why the production webhook is not serving the latest saved version? Thank you.

Try to rename the webhook trigger path or remove the simple memory and test again… :slight_smile:

1 Like

Main Fix Steps

  1. Deactivate → Save → Reactivate your workflow (forces webhook reload).

  2. Restart n8n server / container to clear webhook cache.

  3. Check your “Respond to Webhook” node → remove quotes:

    {{ JSON.stringify($json) }}
    
    

    not "JSON.stringify({{ $json }})".

  4. Purge Cloudflare / Nginx cache if using a reverse proxy.

  5. Make sure all n8n instances (if multiple) are restarted — old one may still serve old workflow.