# Delete persistent flow context variable

**URL:** https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121
**Category:** General
**Created:** [13 September 2018 14:24 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121 "2018-09-13T14:24:01Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)
#### Post date: [13 September 2018 14:24 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/1 "2018-09-13T14:24:01Z")

</div>

I'm using persistant storage and I created a flow.context object with the wrong name

I would like to delete it - whats the easiest way to do this -preferably without having to manually edit the storage file or even stop /start NodeRED

---

<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: [13 September 2018 14:41 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/2 "2018-09-13T14:41:55Z")

</div>

Use a Change node configured to delete it.

---

<div class="post-metadata">

### Author: ![Andrei](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei/32/10446_2.png) [@Andrei](https://discourse.nodered.org/u/Andrei)
#### Post date: [13 September 2018 14:42 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/3 "2018-09-13T14:42:50Z")

</div>

Try to add a mini-flow (inject + change node) just to delete the global variable. Afterward refresh the context panel to see if the variable is gone.

![r-01](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/8/873ef9ac39691f63492ae61bcb26ae6aaea98445.png)

---

<div class="post-metadata">

### Author: ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)
#### Post date: [13 September 2018 14:46 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/4 "2018-09-13T14:46:40Z")

</div>

Ta - worked fine 🙂  
............

---

<div class="post-metadata">

### Author: ![JayDickson](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jaydickson/32/90592_2.png) [@JayDickson](https://discourse.nodered.org/u/JayDickson)
#### Post date: [27 November 2018 20:00 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/6 "2018-11-27T20:00:37Z")

</div>

Hopefully this isn't a stupid question, but how could we go about this with a function node so I could feed it a variable name to nuke when it's no longer needed?

---

<div class="post-metadata">

### Author: ![hotNipi](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hotnipi/32/383_2.png) [@hotNipi](https://discourse.nodered.org/u/hotNipi)
#### Post date: [27 November 2018 20:06 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/7 "2018-11-27T20:06:29Z")

</div>

To remove completely:  
`flow.set(msg.payload);`  
`global.set(msg.payload);`

To clear properties but preserve object:  
`global.set(msg.payload,null);`

To get rid of all what was in store:

```
var keys = global.keys();
for(var i=0;i<keys.length;i++){
    global.set(keys[i]);
}
```

---

<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: [27 November 2018 20:22 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/8 "2018-11-27T20:22:30Z")

</div>

> [@hotNipi](#):
>
> To remove completely:  
> `flow.set(msg.payload);`  
> `global.set(msg.payload);`

Technically it's:

```auto
flow.set(msg.payload, undefined);
global.set(msg.payload, undefined);

```

Omitting the `undefined` is fine, but you may prefer to be explicit so it's clear.

---

<div class="post-metadata">

### Author: ![martenjacobs](https://avatars.discourse-cdn.com/v4/letter/m/6a8cbe/32.png) [@martenjacobs](https://discourse.nodered.org/u/martenjacobs)
#### Post date: [25 December 2018 13:10 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/9 "2018-12-25T13:10:45Z")

</div>

@hotNipi and @knolleary are correct.  
Please note that this behavior may not be what you'd expect when you've worked with javascript objects before.  
Behavior with javascript objects:

```
var test = {};
test.foo = "bar";
Object.keys(test); // returns ['foo']

test.foo = undefined;
Object.keys(test); // returns ['foo']

delete test.foo;
Object.keys(test); // returns []

```

In Node-RED, setting a context variable to undefined actually does remove the key. This means it safe to use to remove keys you're not using anymore without leaking memory:

```
context.set("foo", "bar");
context.keys(); // returns ['foo']

context.set("foo", undefined);
context.keys(); // returns []
```

---

<div class="post-metadata">

### Author: ![apricotfarm](https://avatars.discourse-cdn.com/v4/letter/a/779978/32.png) [@apricotfarm](https://discourse.nodered.org/u/apricotfarm)
#### Post date: [31 May 2021 03:13 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/10 "2021-05-31T03:13:20Z")

</div>

THANK YOU for this. A simple answer, but wasn't obvious to a NR noob...saved me from some self-harm 🙂

---

<div class="post-metadata">

### Author: ![Hunter](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hunter/32/60045_2.png) [@Hunter](https://discourse.nodered.org/u/Hunter)
#### Post date: [3 December 2021 22:33 UTC](https://discourse.nodered.org/t/delete-persistent-flow-context-variable/3121/11 "2021-12-03T22:33:12Z")

</div>

@hotNipi and @knolleary thanks. I was looking for this and didn't know things can be this easy 🙂
