# 🎉 Node-RED 3.0.0-beta.3 released

**URL:** https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027
**Category:** News
**Created:** [16 June 2022 16:27 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027 "2022-06-16T16:27:48Z")
**Posts on this page:** 20
**Page:** 3

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [21 June 2022 14:58 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/41 "2022-06-21T14:58:41Z")

</div>

I'm hitting a bug in V3 (all betas) where nodes get moved to the current tab on initial load. It's a race condition and doesn't always happen and I don't know yet how to create a repro. Here's a screen shot of how it looks, all the nodes that sit on top of others are really supposed to be in other tabs.

 ![Screenshot from 2022-06-20 23-24-19](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/b/ebccabe6e31c8aa82c5cc0ae0fc9dedbae7be2d4.png)

I've been debugging this and this is what I've found:

- the flow file is correct and many times that I reload the browser everything shows correctly, but about 1 in 3 browser reloads results in the mess above
- the reason the nodes show up in the wrong tab is that they get assigned `activeWorkspace` in `importNodes` [node-red/nodes.js at master · node-red/node-red · GitHub](https://github.com/node-red/node-red/blob/master/packages/node_modules/@node-red/editor-client/src/js/nodes.js#L2081)
- this happens because `workspace_map[node.z]` doesn't exist
- the reason this doesn't exist is that `importNodes` gets called from the `registery:node-type-added` event handler with a list of nodes to reimport: [node-red/nodes.js at master · node-red/node-red · GitHub](https://github.com/node-red/node-red/blob/master/packages/node_modules/@node-red/editor-client/src/js/nodes.js#L2772) and the list of nodes passed into `importNodes` only includes the nodes of that type and not any workspace nodes
- in `importNodes` the `workspace_map` only includes workspace nodes that are passed in its argument list, not ones that have been previously imported, e.g. `workspace_map` is incomplete at the re-import time which the module global `workspaces` has all the workspaces.

This race condition is pretty fatal in that if one doesn't see the problem and deploys then the wrong placement of the nodes is saved.

---

<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: [21 June 2022 15:33 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/42 "2022-06-21T15:33:35Z")

</div>

What is that node with the rocket icon? Is it only instances of that node that move?

---

<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: [21 June 2022 15:35 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/43 "2022-06-21T15:35:52Z")

</div>

Hi @tve - please do raise an issue with the details you have identified. That will ensure it doesn't get missed.

Thanks!

---

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [21 June 2022 15:45 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/44 "2022-06-21T15:45:11Z")

</div>

> [@zenofmud](#):
>
> What is that node with the rocket icon? Is it only instances of that node that move?

It's a flexdash-related node. The bug happens when nodes of a given type are reimported when the type gets defined, that's why all the affected nodes are of the same type.

---

<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: [21 June 2022 15:55 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/45 "2022-06-21T15:55:59Z")

</div>

> [@tve](#):
>
> The bug happens when nodes of a given type are reimported when the type gets defined, that's why all the affected nodes are of the same type.

Can you explain that a bit more? The editor loads all of the node definitions before it loads the flow configuration from the runtime. So everything should already be defined and no nodes should be added to the editor "when the type gets defined".

Maybe I'm misunderstanding your meaning here, or there's some specific behaviour of your flexdash nodes that I'm missing?

---

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [21 June 2022 15:57 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/46 "2022-06-21T15:57:38Z")

</div>

Repro coming. Has nothing to do with FlexDash. If you follow the links to the code in my explanation above you can see how the node-type-added event handle re-imports nodes when the type gets defined.

---

<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: [21 June 2022 16:01 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/47 "2022-06-21T16:01:28Z")

</div>

That whole code path is related to when the flows are loaded with 'unknown' nodes - but the node type is subsequently added to the runtime. The editor can then update all of the 'unknown' nodes with the real nodes.

That is not a normal code path for when you open the editor. All of the types should be registered and available _before_ the editor loads the flow configuration.

So I'll be interested to see your steps for reproducing this.

---

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [21 June 2022 16:04 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/48 "2022-06-21T16:04:42Z")

</div>

Github issue with link to repro: [nodes get moved to current tab on flow-edit launch due to race condition · Issue #3699 · node-red/node-red · GitHub](https://github.com/node-red/node-red/issues/3699)

---

<div class="post-metadata">

### Author: ![mbonani](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mbonani/32/10631_2.png) [@mbonani](https://discourse.nodered.org/u/mbonani)
#### Post date: [21 June 2022 19:42 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/49 "2022-06-21T19:42:56Z")

</div>

I accidentally double-clicked the right button and ended up with this.

 ![Screen Shot 2022-06-21 at 3.37.00 PM](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/8/c80ef46a714fdc9fbc1f9af034aa2209c0dc065a.png)

---

<div class="post-metadata">

### Author: ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)
#### Post date: [21 June 2022 22:25 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/50 "2022-06-21T22:25:17Z")

</div>

> [@ralphwetzel](#):
>
> I can reproduce that behaviour in v2.2.2 as well as v3.0-beta.

This issue is due to the fact, that - when opening the editor dialogs - the keyboard shortcut mapping is not disabled. I'll raise a PR to get this fixed.

---

<div class="post-metadata">

### Author: ![haegar33](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/haegar33/32/38805_2.png) [@haegar33](https://discourse.nodered.org/u/haegar33)
#### Post date: [22 June 2022 13:04 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/51 "2022-06-22T13:04:12Z")

</div>

Is there a constrain with V3 to use an older version of the dashboard? I am at V2.22 and cannot update because I am using an old iPad as main output screen.

---

<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: [22 June 2022 13:16 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/52 "2022-06-22T13:16:28Z")

</div>

> [@haegar33](#):
>
> Is there a constrain with V3 to use an older version of the dashboard

No - all nodes should keep working as-is. There are no significant breaking changes (other than dropping support for Node 12).

---

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [22 June 2022 17:13 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/53 "2022-06-22T17:13:16Z")

</div>

Re: junction nodes. When I'm wiring to/from a junction node I'm finding it quite annoying that the node only expands when the cursor is on the junction dot and not already when it is on the yet-to-appear wiring dot. E.g., I know where the wiring dot will appear and I'd like to move the cursor right there, have it appear, and release the button. As opposed to having to move onto the main junction dot, wait for it to expand and show the two wiring dots, then slightly correct my mouse position so it's on the wiring dot, and then release the button.

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [22 June 2022 17:15 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/54 "2022-06-22T17:15:30Z")

</div>

You can simply let go on the center dot and it will know from the wire direction which side to attach.

But i agree, it would be nice to have a hidden detection radius

---

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [22 June 2022 17:21 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/55 "2022-06-22T17:21:46Z")

</div>

Re: text editor. When I re-open a function node the editor remembers the previous text selection. That's probably good, dunno.. However, when I click somewhere else, it's as if I had shift-clicked, i.e. the selection gets extended to where I click. This happens systematically for me when I re-open a function node where I've previously set the cursor, not the first time I open one. Using Vivaldi (latest) or firefox (latest) on Linux.

---

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [22 June 2022 17:26 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/56 "2022-06-22T17:26:24Z")

</div>

> [@Steve-Mcl](#):
>
> You can simply let go on the center dot and it will know from the wire direction which side to attach.

Thanks for pointing that out! It doesn't work when wiring _from_ a junction node, though, due to confusion with moving the node.

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [22 June 2022 17:57 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/57 "2022-06-22T17:57:01Z")

</div>

Which editor - ace or Monaco or both?

---

<div class="post-metadata">

### Author: ![tve](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tve/32/59475_2.png) [@tve](https://discourse.nodered.org/u/tve)
#### Post date: [22 June 2022 18:07 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/58 "2022-06-22T18:07:53Z")

</div>

how can I tell?

---

<div class="post-metadata">

### Author: ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)
#### Post date: [22 June 2022 18:12 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/59 "2022-06-22T18:12:45Z")

</div>

> [@ralphwetzel](#):
>
> I'll raise a PR to get this fixed.

[Done](https://github.com/node-red/node-red/pull/3700).

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [22 June 2022 18:24 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027/60 "2022-06-22T18:24:32Z")

</div>

> [@tve](#):
>
> how can I tell

Settings.js -\> codeEditor

In short, if you get helpful snippets, syntax errors for undefined variable, a command palette (f1 or right click), function intellisence, parameter help, jsdoc support and can see a mini map on the right - you have Monaco

If you get basic error highlighting (a red Mark in the left-hand column) you have ace (which will probably be dropped in the next version of node-red since Monaco provides a much richer experience)

[Previous page](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027.md?page=2)

[Next page](https://discourse.nodered.org/t/node-red-3-0-0-beta-3-released/64027.md?page=4)
