# What should 'Restart Flows' do?

**URL:** <https://discourse.nodered.org/t/what-should-restart-flows-do/100066>\
**Category:** General\
**Created:** [1 January 2026 13:43 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066 "2026-01-01T13:43:55Z")\
**Posts on this page:** 20\
**Page:** 1

<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:** [1 January 2026 13:43 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/1 "2026-01-01T13:43:55Z")

</div>

Under the dropdown on the Deploy button is a Restart Flows option. I had always assumed that, in terms of flow operation, this was effectively the same as restarting node-red. It seems not however. For example it does not clear context. Also D2 nodes' state is not cleared.

Is that by design? What should the behaviour be?  
I don't really see the point of the feature if it does not do a 'clean' restart.

I am running the v5 beta of node red, but I assume this is not a change to previous behaviour.

---

<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:** [1 January 2026 21:36 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/2 "2026-01-01T21:36:22Z")

</div>

This is particularly relevant to the D2 ui-chart node. When using msg.ui\_update.chartOptions to tweak the eCharts options it is easy to get the chart options in a mess. Currently the only way of recovering that is to restart node-red.

---

<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:** [4 January 2026 15:48 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/3 "2026-01-04T15:48:33Z")

</div>

Nobody else got any thoughts on this?

---

<div class="post-metadata">

**Author:** ![Buckskin](https://avatars.discourse-cdn.com/v4/letter/b/b9e5f3/32.png) [@Buckskin](https://discourse.nodered.org/u/Buckskin)\
**Post date:** [4 January 2026 20:31 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/4 "2026-01-04T20:31:32Z")

</div>

I have a restart node-RED (very) short flow - as in 3 nodes - that I use after updating nodes so I have never used the Restart Flows drop down, but having seen this and had a quick think about it, 'what does Restart Flows actually do then?'

---

<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:** [4 January 2026 21:48 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/5 "2026-01-04T21:48:37Z")

</div>

> [@Buckskin](#):
>
> what does Restart Flows actually do then?

That is a very good question. It would be good to get an informed reply to that.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [4 January 2026 22:12 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/6 "2026-01-04T22:12:37Z")

</div>

I'm sure it must do something else as well, but for me it does this.

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

I expected it to revert to the last deploy, as reloading the page does, but nope.

---

<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:** [5 January 2026 09:39 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/7 "2026-01-05T09:39:51Z")

</div>

> [@jbudd](#):
>
> I expected it to revert to the last deploy,

The server is always running the last deploy, so I am not sure what you mean by that.

---

<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:** [5 January 2026 09:42 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/8 "2026-01-05T09:42:44Z")

</div>

The restart action is mostly equivalent to a full deploy with no changes; the existing nodes are stopped, the flow configuration is reloaded from storage, and the nodes are restarted.

It isn't quite the same as a full shutdown/restart of the Node-RED process as context won't get cleared.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [5 January 2026 09:43 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/9 "2026-01-05T09:43:01Z")

</div>

Drop any changes in the editor since deploying. As reloading the page does.

---

<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:** [5 January 2026 09:56 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/10 "2026-01-05T09:56:03Z")

</div>

> [@knolleary](#):
>
> existing nodes are stopped, the flow configuration is reloaded from storage, and the nodes are restarted.

I see that MQTT nodes reconnect, but a dashboard chart does not get destroyed and re-created, is that what you would expect?

---

<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:** [5 January 2026 11:50 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/11 "2026-01-05T11:50:03Z")

</div>

> [@Colin](#):
>
> but a dashboard chart does not get destroyed and re-created

That will depend on how Dashboard handles config nodes being stopped/started and any associated state management. It feels like it _should_ be a clean restart, but I'm not familiar with how the db nodes manage their state.

---

<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:** [5 January 2026 12:16 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/12 "2026-01-05T12:16:00Z")

</div>

I was asking whether they _should_ get destroyed and recreated. They don't. Which means that the only way of completely restarting a DB2 chart, which one has got in a mess by passing it inappropriate config via msg.ui\_update, is by restarting node-red. Which is a pain.

---

<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:** [5 January 2026 13:27 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/13 "2026-01-05T13:27:44Z")

</div>

If we can identify the part of code _hanging on to_ state, we may be able to detect a restart and clean up accordingly. But assessing if this is the right thing to do is also important.

---

<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:** [5 January 2026 13:39 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/14 "2026-01-05T13:39:25Z")

</div>

> [@Steve-Mcl](#):
>
> assessing if this is the right thing to do is also important.

Yes, that is why I asked the question.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [5 January 2026 16:24 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/15 "2026-01-05T16:24:00Z")

</div>

You'll be right 50% of the time... For all those that want to fully reset the context - there will be those who want it maintained...

---

<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:** [6 January 2026 09:45 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/16 "2026-01-06T09:45:44Z")

</div>

True, which I suppose means that we probably won't change the current behaviour.

---

<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:** [6 January 2026 09:54 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/17 "2026-01-06T09:54:13Z")

</div>

It would certainly be helpful to have a clearer statement in the docs about what this option does, does not and is supposed to do. If it restarts all nodes - what does that actually mean?

I assume that it means that each node's `registerType` function is re-run? This is really important for us to know. If that is the case, I also assume that the `close` event is triggered before `registerType` is re-run? Because if not, that would cause many issues. But at least node authors should be made aware that registerType may be called again via this process and that may happen without a reset of Node-RED's context variables.

---

<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:** [6 January 2026 10:19 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/18 "2026-01-06T10:19:27Z")

</div>

As I said, it is mostly the same as doing a full deploy. The key difference is that rather than send undeployed changes from the editor to the runtime, the runtime will reload the configuration from storage.

It isn't a full restart of the runtime; it doesn't cause node definitions to be reloaded so `registerType` is _not_ called again.

---

<div class="post-metadata">

**Author:** ![ThingsTinkerer](https://avatars.discourse-cdn.com/v4/letter/t/91b2a8/32.png) [@ThingsTinkerer](https://discourse.nodered.org/u/ThingsTinkerer)\
**Post date:** [6 January 2026 15:56 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/19 "2026-01-06T15:56:47Z")

</div>

If there is a new restart feature or change that deletes context, please give a warning (or even possibility to hide/disable in settings) because this will lead to data loss and errors in some (our 😀) running systems.

---

<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:** [6 January 2026 15:59 UTC](https://discourse.nodered.org/t/what-should-restart-flows-do/100066/20 "2026-01-06T15:59:39Z")

</div>

Do you mean that selecting Restart Flows is something that you regularly do in your running systems?

[Next page](https://discourse.nodered.org/t/what-should-restart-flows-do/100066.md?page=2)
