# Webhook fires mutliple times

**URL:** https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153
**Category:** General
**Created:** [13 January 2026 09:01 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153 "2026-01-13T09:01:00Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![rucksman007](https://avatars.discourse-cdn.com/v4/letter/r/a88e4f/32.png) [@rucksman007](https://discourse.nodered.org/u/rucksman007)
#### Post date: [13 January 2026 09:01 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/1 "2026-01-13T09:01:00Z")

</div>

I have an application that sends notifications via webhooks. I want to process this notification in Node-RED. So I used a "http in"-Node in Node-RED, configured it with method POST and entered /webhook-test as URL. For testing purposes I only wired a debug node to it. Then I used the test-feature in the other application and triggered a notification. The "http in"-Node receives this information which is good, but it fires mutliple times in a time frame of something like 2 minutes. I tested with a public available Webhook-Test-Service ([https://webhook-test.com/](https://webhook-test.com/)), and there I get only one message as expected. What could be the reason that my http-in-Node fires multiple times? Of course I could overcome this with a delay-Node, but this is a dirty solution and does only fix the result but not the reason for this faulty behaviour.

---

<div class="post-metadata">

### Author: ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)
#### Post date: [13 January 2026 10:20 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/2 "2026-01-13T10:20:23Z")

</div>

> [@rucksman007](#):
>
> What could be the reason that my http-in-Node fires multiple times?

Don't know.

Could you please provide the [flow code](https://discourse.nodered.org/t/how-to-share-code-or-flow-json/506), everything else is speculation without the flow code.

The http-in node definitely behaves as expected wherever I use the node.

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [13 January 2026 10:39 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/3 "2026-01-13T10:39:59Z")

</div>

The implication here is that something in your front-end code is triggering a 2nd post. The API test tool doesn't do it so it isn't a Node-RED issue, it has to be in your front-end.

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [13 January 2026 11:31 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/4 "2026-01-13T11:31:52Z")

</div>

Do you have a http response node configure with the http in node. If not your application may be resending due to not receiving a response.

---

<div class="post-metadata">

### Author: ![rucksman007](https://avatars.discourse-cdn.com/v4/letter/r/a88e4f/32.png) [@rucksman007](https://discourse.nodered.org/u/rucksman007)
#### Post date: [13 January 2026 14:32 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/5 "2026-01-13T14:32:55Z")

</div>

This is the very simply flow

```flows
[
    {
        "id": "b5f0a4915adf75f1",
        "type": "http in",
        "z": "f5b3a313c1b32b9d",
        "name": "Speedtest Webhook",
        "url": "/speedtest-webhook",
        "method": "post",
        "upload": false,
        "skipBodyParsing": false,
        "swaggerDoc": "",
        "x": 290,
        "y": 240,
        "wires": [
            [
                "597ac9e371782bf3"
            ]
        ]
    },
    {
        "id": "457837a96cd791e8",
        "type": "http request",
        "z": "f5b3a313c1b32b9d",
        "name": "",
        "method": "POST",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "https://gotify.mydomain.com/message?token=mytoken",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "headers": [],
        "x": 670,
        "y": 240,
        "wires": [
            []
        ]
    },
    {
        "id": "597ac9e371782bf3",
        "type": "function",
        "z": "f5b3a313c1b32b9d",
        "name": "function 97",
        "func": "let pl = msg.payload.benchmarks.upload.passed;\nlet title = 'Speedtest Webhook Test';\nlet extras = '{\"client::display\":{\"contentType\":\"text/markdown\"}}';\nlet pljson = '{\"message\": \"# ' + pl + '\",\"priority\": 9,\"title\": \"' + title + '\",\"extras\": ' + extras + '}';\nmsg.payload = JSON.parse(pljson);\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 490,
        "y": 240,
        "wires": [
            [
                "457837a96cd791e8"
            ]
        ]
    }
]

```

@TotallyInformation Why do you think it is a problem in the front-end? When I trigger the notification in the application und one system (([https://webhook-test.com/](https://webhook-test.com/)) behaves correct (only one message) and the other faulty (Node-RED, multiple messages), my guess would rather be that the problem is somewhere in my Node-RED flow ...

---

<div class="post-metadata">

### Author: ![rucksman007](https://avatars.discourse-cdn.com/v4/letter/r/a88e4f/32.png) [@rucksman007](https://discourse.nodered.org/u/rucksman007)
#### Post date: [13 January 2026 14:40 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/6 "2026-01-13T14:40:46Z")

</div>

@E1cid Thanks! That was it! I had no http response node configured. After adding one, there is only one message finally. Sorry for this silly mistake ...

---

<div class="post-metadata">

### Author: ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)
#### Post date: [13 January 2026 18:05 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/7 "2026-01-13T18:05:38Z")

</div>

```auto
let pl = msg.payload.benchmarks.upload.passed;
let title = 'Speedtest Webhook Test';
let extras = '{"client::display":{"contentType":"text/markdown"}}';
let pljson = '{"message": "# ' + pl + '","priority": 9,"title": "' + title + '","extras": ' + extras + '}';
msg.payload = JSON.parse(pljson);
return msg;

```

Btw I had a quick look at your function node and you don't have to parse JSON strings:

```auto
let extras = { "client::display": { contentType: "text/markdown" } }
msg.payload = { message: "#" + pl, priority: 9, title: title, extras: extras }

```

should also work.

---

<div class="post-metadata">

### Author: ![hardillb](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hardillb/32/12373_2.png) [@hardillb](https://discourse.nodered.org/u/hardillb)
#### Post date: [13 January 2026 18:48 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/8 "2026-01-13T18:48:08Z")

</div>

You are missing a HTTP-response node (every http-in should be paired with one)

Without this the client request will just be timed out and never get a response, which is likely to trigger it to try again

I suggest you wire a HTTP-response node directly to the HTTP-in node in parallel to the function node

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)
#### Post date: [13 April 2026 18:48 UTC](https://discourse.nodered.org/t/webhook-fires-mutliple-times/100153/9 "2026-04-13T18:48:20Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
