Msg duplication because of 'Link out' and 'Link in'


I spent a couple of hour on an unbelievable beharior.
I use to introduce many Link out and link in nodes between flows, and even in a single flow for clarifying my flow chart view.
My trouble is that, some couple of link out and link in nodes duplicate the messages. This does not occure over all Link nodes, but those ones that give such a behavior run this issue all the time.
When I just click on one of them, I clearly see a single discontinuous line between them.
When I open hte link node propoerty window, I clearly see that each of them is link only to its friend.

The only way I've found to bypass this issue is to remove hte couple of nodes and re-introduce new ones. For 1 time, it is OK, but that irritates me when I have many items to replace...

Maybe somebody faces the same issue?
Maybe somebody got the solution?

I'm running v2.2.0 ned-red version.

Please let me know.

If you can replicate the issue then connect an Inject node to the link out, and delete other input wires, connect a debug node to the link in, and delete other wires there too. Check that you see two messages in the debug node for each inject. Select the nodes, export them, and post here so we can see if we can replicate it.

Edit Tell us if you notice anything strange when deleting the existing wires.

I kept a couple of problematic links out-in, and it appears that I cannot select the wire to the link-out in order to delete it!!... (to launch your proposed test).
So does it mean the issue is about the wire, and not related to the link-ou/link-in couple?
You can see my cross-cursor en grey, no any to highlight the wire... First time I see it:

Right, did it click and delete the first time, but not actually disappear? If so then this looks like another issue like Possible bug ( UI dashboard switch node or function switch Node)

If you have not deployed can you refresh the browser and export just the nodes each end of that wire and export and paste it here please, to confirm the problem, which is that there are actually two wires there. Then I will submit an issue for the developers, to look at.

I have submitted an issue on github so the developers will see this. Could you subscribe that the issue so you can answer any questions the developers may have, please?

I hope I well understand the question, but I cannot select it at all at that moment.
I've done many many manipulations trying to fix the problem, so I don't remumber if I already tried to delete it while it says displayed. But I guess no.

By moving through your requests, I then refresh the browser (but my nodes were already deployed), and now this wire is selectable!!
So I didn't deleted it in order to export ('see below) the node before (basic HTML table with button click involving msg output), THE WIRE, an Inject node, the Link-out, the Link-in and the debug node.

In my case, injecting a msg only gives 1 msg in debug node, but an outgoning msg from by HTML node gives 2. So it may appear that the issue is really this link, and not Link-out/Link-in at all.....

[{"id":"9e94dafc265196bf","type":"ui_template","z":"bc61902ea32e5d84","group":"4a17b6edb5dc5cc5","name":"Device-table","order":2,"width":"16","height":"8","format":"<style>\n    table {\n    color: #333;\n    font-family: Helvetica, Arial, sans-serif;\n    font-size: 80%;\n    width: auto;\n    border-collapse: collapse;\n    text-align: center;\n    /*table-layout:fixed;*/\n    }\n    td, th {\n        border: 0px solid transparent;\n        /* No more visible border */\n        height: 30px;\n        /* Simple transition for hover effect */\n        padding-left: 20px;\n        padding-right: 20px;\n        padding-top: 0px;\n        padding-bottom: 0px;\n        /*max-width:600px;*/\n        word-wrap:break-word;\n    }\n    th {\n        background: #DFDFDF;\n        /* Darken header a bit */\n        font-weight: bold;\n    }\n    td {\n        /*background: #FAFAFA;*/\n        /*text-align: center;*/\n        white-space: nowrap;\n        overflow: hidden;\n    }\n    \n    /* Cells in even rows (2,4,6...) are one color */\n    \n    tr:nth-child(even) td {\n        background: #F1F1F1;\n    }\n    \n    /* Cells in odd rows (1,3,5...) are another (excludes header cells)  */\n    \n    tr:nth-child(odd) td {\n        background: #FEFEFE;\n    }.numeric {\n        text-align: right;\n        padding-right: 15px;\n    }\n    \n    .md-button {\n      padding: 0 6px 0 6px;\n      margin: 3px 4px 3px 4px;\n      min-width: 88px;\n      /*height: 20px!important;*/\n      border-radius: 3px;\n      font-size: 12px;\n      text-align: center;\n      text-transform: none;\n      text-decoration:none;\n      min-height: unset !important;\n      border: none;\n      outline: none;\n    }\n    \n    .md-button:not([disabled]):hover {\n      background-color: rgba(158, 158, 158, 0.2);\n    }\n    \n    .md-button[disabled] {\n      color : rgba(0, 0, 0, 0.26);\n      background-color: transparent;\n    }\n</style>\n\n<table id=\"table-other-params\" class=\"table-hover\"  style=\"width: 100%;\">\n    <thead>\n        <tr>\n            <th>ID</th>        \n            <th>Name</th>        \n            <th>Size</th>\n            <th>Value</th>\n            <th>Meaning</th>\n            <th>Action</th>\n            \n        </tr>\n    </thead>\n    <tbody>\n        <!-- <tr ng-repeat=\"row in msg.payload\" ng-dblclick=\"sendRow(row)\"> -->\n        <tr ng-repeat=\"row in msg.params\" ng-click=\"sendRow(row)\">\n            <td>{{}}</td>        \n            <td>{{}}</td>        \n            <td>{{row.size}}</td>\n            <td>{{row.value}}</td>\n            <td></td>\n            <td id=\"main_+{{row.i}}\"><md-button class=\"md-warn\" ng-click=\"sendRow(row.i)\">Change</md-button></td>\n        </tr>\n        \n    </tbody>\n</table>\n\n<script>\n(function($scope) {\n    $scope.sendRow = function(obj) {\n    $scope.send({ \"payload\": (document.getElementById(\"table-other-params\").rows[obj].innerHTML), \"action\": \"change\" });\n    };\n})(scope);\n</script>","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":false,"templateScope":"local","className":"","x":820,"y":2640,"wires":[["d41db1fb584dca3c","b8e18cf477d46459","d2c9826b4e02cd81","d41db1fb584dca3c"]]},{"id":"d41db1fb584dca3c","type":"link out","z":"bc61902ea32e5d84","name":"","mode":"link","links":["79e67a66ec145ac0"],"x":1165,"y":2720,"wires":[]},{"id":"79e67a66ec145ac0","type":"link in","z":"bc61902ea32e5d84","name":"","links":["d41db1fb584dca3c"],"x":1375,"y":2740,"wires":[["0b27bd9fd53bd5c2"]]},{"id":"0b27bd9fd53bd5c2","type":"debug","z":"bc61902ea32e5d84","name":"CLICK 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1500,"y":2740,"wires":[]},{"id":"8bc770d39575e5f3","type":"inject","z":"bc61902ea32e5d84","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":980,"y":2780,"wires":[["d41db1fb584dca3c"]]},{"id":"4a17b6edb5dc5cc5","type":"ui_group","name":"Other params","tab":"9c01707abc0f5856","order":5,"disp":true,"width":"16","collapse":false,"className":""},{"id":"9c01707abc0f5856","type":"ui_tab","name":"Read App params","icon":"dashboard","disabled":false,"hidden":false}]

I can see from your flow that it is the same issue as in the issue I have posted on github. Somehow there are two wires on top of each other between the template node and the link node, which should not be able to happen. If you click that wire it highlights and if you then hit delete it deletes one of the wires, but then the s/w becomes confused because there is still a wire there and for some reason won't let you highlight it.
The work around is to Deploy at this point, then refresh the browser, then you are back to one wire and all is well.
The remaining problem is how you got into that situation in the first place, at the moment we don't know how to replicate it.

@Colin ,

Your explanation seems so obvious that I didn't even try.

I confirm that hte work around gives the expected behavior.

Thanks again.

For the record, in case it is significant can you confirm please:
The version of nodejs you are using (node -v will tell you that)
What hardware and OS node red is running on
What browser you are using


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