Cannot join in 'auto' mode

I keep receiving a "Message missing msg.parts property - cannot join in 'auto' mode" error when I try to publish a message from HiveMQ.

I've looked into the source code on multiple repos (GitHub and Git Lab) that might have to do with this, and Stack Overflow has nothing on it.

What I've done is wired the receiving MQTT node to a json node which morphed into a join node--which is then wired to a switch node which pipes the output to different debug nodes depending on a single criteria.

If there are resources I should have looked into before asking on this site, please do tell me about it in discussion.

Hi -- the join node used in "auto" mode is designed to work in tandem with the split node. Without first going through the split node, the individual messages will not have the "parts" (properties) necessary for the auto join to work. As described in the info sidebar under "Inputs":

parts

To automatically join a sequence of messages, they should all have this property set. The split node generates this property but it can be manually created.

So instead, you will need to use "manual" mode... which can build a merged object from different topics/values, or wait until so much time has elapsed or a certain number of messages are received. If you want to post some sample input msgs, and describe how you want them joined, there are many people on this forum who will be willing to give suggestions.

So I'm trying to pass a JSON object to the debug nodes. The switch case uses "msg.payload.analyze" and passes the object to one debug output or another based on whether the analysis is true or false. The join mode is currently automatic, so I don't understand what the issue is when I pass it
"{"analyze":true, "value":6}"

I have no preference as to how the messages are joined, only that they are joined so I may understand how it works.

Right - but the Join node needs to be given some hint what to do.

The 'automatic' mode means the node expects each message to have the parts property and the Join node will know what to do.

If your messages don't have the parts property then you need to tell the Join node what to do by putting it into Manual mode.

Thank you.

I had used the json node, which morphed into the join node, but the json node was correct and what worked. I appreciate your patience.

What do you mean it morphed into a Join node? If the JSON node did what you wanted why change it to Join which does something completely different.

The way I remember it happening is I pulled a json node, but when I wired up the switch node the json node changed to a join node.

That sounds rather unlikely, but no way of knowing now.

1 Like