# JOIN Node - Disappearing property

**URL:** <https://discourse.nodered.org/t/join-node-disappearing-property/21506>\
**Category:** General\
**Created:** [10 February 2020 15:44 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506 "2020-02-10T15:44:45Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![soma](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@soma](https://discourse.nodered.org/u/soma)\
**Post date:** [10 February 2020 15:44 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/1 "2020-02-10T15:44:45Z")

</div>

Hello there, using the JOIN Node, one of the property disappears after it.

JOIN configuration: Mode manual, Combine each msg.payload to create a merged object after a number of message parts: 4.

Here is a reproduction of my flow (without sensible data):

payload pics

```auto
msg = {
    payload: {
        pictures: [...]
    }
};

```

payload data

```auto
msg = {
    payload : {
        correlationId: "idididid",
        timestamp: "2020-02-10T09:52:51.324Z",
        expectedData: { ... }
    }
};

```

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/8/d87fb7ae2b45fc533aff4af03024294aa1f12980.png)

The property **msg.payload.correlationId** is in input of the JOIN Node and missing after. Weird thing is it's only occurring in my "production" flow (with real trigger and much more actions), not using a flow like above.

I've bypassed this by renaming the property before the JOIN and renaming it back after.  
Any reason why this particular name would trigger such behavior? I've not found any variable with that name anywhere.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [10 February 2020 16:16 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/2 "2020-02-10T16:16:29Z")

</div>

Could you share the flow json so we can more easily try to recreate it?

---

<div class="post-metadata">

**Author:** ![soma](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@soma](https://discourse.nodered.org/u/soma)\
**Post date:** [10 February 2020 18:03 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/3 "2020-02-10T18:03:19Z")

</div>

This is the reproduced flows `[{"id":"2ac58527.f84daa","type":"tab","label":"Generic","disabled":false,"info":""},{"id":"5a28274f.6cc748","type":"function","z":"2ac58527.f84daa","name":"data","func":"msg = {\n payload : {\n correlationId: \"idididid\",\n timestamp: \"2020-02-10T09:52:51.324Z\",\n expectedData: {}\n }\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":120,"wires":[["40a7d30a.b49dbc","ec492e65.4b03f"]]},{"id":"9e753480.d18ec8","type":"inject","z":"2ac58527.f84daa","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":120,"wires":[["5a28274f.6cc748"]]},{"id":"40a7d30a.b49dbc","type":"debug","z":"2ac58527.f84daa","name":"data","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":430,"y":140,"wires":[]},{"id":"ec492e65.4b03f","type":"join","z":"2ac58527.f84daa","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"4","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":430,"y":100,"wires":[["e7998297.06b9e"]]},{"id":"e7998297.06b9e","type":"debug","z":"2ac58527.f84daa","name":"join","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":570,"y":100,"wires":[]},{"id":"6f2c5eca.8ac37","type":"inject","z":"2ac58527.f84daa","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":80,"wires":[["87ca0a1f.7759f8"]]},{"id":"87ca0a1f.7759f8","type":"function","z":"2ac58527.f84daa","name":"pics","func":"msg = {\n payload: {\n pictures: []\n }\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":80,"wires":[["ec492e65.4b03f","42c46555.01c73c"]]},{"id":"42c46555.01c73c","type":"debug","z":"2ac58527.f84daa","name":"pics","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":430,"y":60,"wires":[]}]`

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [10 February 2020 19:46 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/4 "2020-02-10T19:46:43Z")

</div>

The msg.payload.correlationId show up for me  
 ![Screen Shot 2020-02-10 at 2.45.26 PM](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/6/f60ba059f476a306e4a44a98cd4fe34c64079d3a.png)

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [11 February 2020 05:30 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/5 "2020-02-11T05:30:47Z")

</div>

I believe without the proper `parts` metadata, the join node will wait for _any_ 4 parts and continue with those.

So, if in production many more messages arrive in an undetermined order, is it possible you received at least 4 _pics_ in a row and the _data_ later on? That would be one explanation for the missing data from the other input.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [11 February 2020 10:16 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/6 "2020-02-11T10:16:21Z")

</div>

You might be better using key/value pairs mode (make sure the two message paths have different topics). Then you might also want And After Every Subsequent Message.

---

<div class="post-metadata">

**Author:** ![soma](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@soma](https://discourse.nodered.org/u/soma)\
**Post date:** [11 February 2020 12:43 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/7 "2020-02-11T12:43:19Z")

</div>

@zenofmud Yes it is showing with this flow. I don't know why it is disappearing in my real flow (which I cannot send as it contains real data and rely on hardware setup.

@kuema Yes, the JOIN node will be triggered every 4 parts, whatever they are coming from.  
I can receive a variable number of pictures as I have a JOIN node before to concatenate all data into one payload containing one array "pictures".  
The flow behaves normally, getting all parts needed in the right order. By the way it's setup, it's not possible for a payload to be sent twice before the other one.

---

<div class="post-metadata">

**Author:** ![soma](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@soma](https://discourse.nodered.org/u/soma)\
**Post date:** [11 February 2020 12:43 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/8 "2020-02-11T12:43:55Z")

</div>

@Colin "Every subsequent message" means the JOIN will be trigger after 4 parts and then every part received. This is not what I need.  
The "key/value" mode would require to change the way I use the payload after. For now, my workaround is sufficient but I'm looking for an explanation of the bug 🙂

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [11 February 2020 14:52 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/9 "2020-02-11T14:52:46Z")

</div>

> [@soma](#):
>
> I don't know why it is disappearing in my real flow

Since the 'demo' flow you provided works, and you can't provide your real flow, there is not much anyone can do to help. You could put a `delay` node (set to 1 second) before the `join` and attach a `debug` to both the output of the `delay` node and the output of the `join`, so you will have arecord of the msg's entering the `join` and the joined message. That may help you to determine what is happening.

---

<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:** [11 April 2020 14:52 UTC](https://discourse.nodered.org/t/join-node-disappearing-property/21506/10 "2020-04-11T14:52:52Z")

</div>

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