# Node-red-contrib-persist on DietPi : EACCES: permission denied, open '/root/data/persistence.json'

**URL:** <https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911>\
**Category:** General\
**Created:** [24 June 2020 19:09 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911 "2020-06-24T19:09:19Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 19:09 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/1 "2020-06-24T19:09:19Z")

</div>

Cannot open this file in node red and dietpi. On raspbian stretch everything is ok.  
Please help.  
Thanks.

---

<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:** [24 June 2020 19:14 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/2 "2020-06-24T19:14:13Z")

</div>

What user is running node-red?  
Does that user have permission to access the file specified?  
what do you mean when you say

> On raspbian stretch everything is ok.

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 19:18 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/3 "2020-06-24T19:18:17Z")

</div>

Yes, on raspbian everything is ok, only on dietpi i have a problem.  
Problem is coming with persist node from palette.  
Clean install for all many times.

---

<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:** [24 June 2020 19:24 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/4 "2020-06-24T19:24:55Z")

</div>

Sounds like an issue with a specific contrib node.

Ps. Did you install node-red as root by any chance?

Did you use the official install script to install node-red?

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 19:26 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/5 "2020-06-24T19:26:45Z")

</div>

No understand?  
I nstall node red from dietpi-software menu.

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 19:38 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/6 "2020-06-24T19:38:06Z")

</div>

Only on dietpi i have a problem!

---

<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:** [24 June 2020 19:50 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/7 "2020-06-24T19:50:12Z")

</div>

I would recommend you remove and use the official installer script.

I suspect the installation method you used has caused permissions issue.

[Install instructions for pi](https://nodered.org/docs/getting-started/raspberrypi)

**Disclaimer**...  
I have not used dietpi but as it is Debian based I believe the official pi install script will work.

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 20:14 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/8 "2020-06-24T20:14:47Z")

</div>

I have installed the official version of Raspberian and node red many times, at least more than 100 times. I have 6 Rpi that work. I only have such a problem with dietpi.

---

<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:** [24 June 2020 20:24 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/9 "2020-06-24T20:24:58Z")

</div>

> [@devifast](#):
>
> I only have such a problem with dietpi.

Did you use the EXACT same procedure for installing on DietPI as you use on Raspian?

Even if the answer is yes, the OS'es are different - it might be related - or it might be a problem of the contrib node (which you still havent linked to or provided the node-red-contrib-xxxxx name)

I am aware the official script setups up node-red without messing up permissions - so thats why my suggestion was to use the official script (some people install with root when they should not)

If you dont wanna try it - fair enough - go search the net or debug the node causing your issue & report it on the github issues page.

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 20:35 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/10 "2020-06-24T20:35:24Z")

</div>

I write image of dietpi with balena etcher on sd card. then i install dietpi without problems.  
Also i install node red with software ui on dietpi under number 122.  
Only i have a problem with persist store!

---

<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:** [24 June 2020 20:43 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/11 "2020-06-24T20:43:16Z")

</div>

> [@devifast](#):
>
> Also i install node red with software ui on dietpi under number 122

I have no idea what that means.

If you wont try the official debian based installer written specifically for installing node-red then I cant help on that part sorry.

unless...

> [@devifast](#):
>
> persist store

What is persist store? Are you modifying the `settings.js` to make context persistent?

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 20:44 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/12 "2020-06-24T20:44:29Z")

</div>

The title clearly states permission denied!

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 20:46 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/13 "2020-06-24T20:46:52Z")

</div>

> **[node-red-contrib-persist](https://flows.nodered.org/node/node-red-contrib-persist)**
>
> A node-red node to persist data between Node Red deploys and restarts.

---

<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:** [24 June 2020 20:48 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/14 "2020-06-24T20:48:19Z")

</div>

Yes it does but we have no access to your system to check out the issue - we have to drag information out of you.

Do you really think posting "Cannot open this file in node red and dietpi. On raspbian stretch everything is ok" is enough for people to help?

for example...

- It could be the account that runs node-red
- it could be the way you installed it

NOTE:  
node-red DOESNT NOT ACCESS anything in `/root/data/persistence.json`. Some combination of how node-red is installed (possibly) and / or a CONTRIB node and / or something YOU set in settings.js is the reason

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 20:51 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/15 "2020-06-24T20:51:49Z")

</div>

What access?  
No problem, say it and you have it.

---

<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:** [24 June 2020 20:54 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/16 "2020-06-24T20:54:28Z")

</div>

So finally, we get the required information!

It looks to me like the installation on DietPi was done by `root` - thats why entering a filename only ( `persistence.json`) is trying to be written to `/root/data`

I STRONGLY suspect the installation is not correct!

I suspect on your raspian installs, the `persistence.json` is NOT written to `/root/data` but instead it will be found in the `pi/data` folder

As a test, put a full file path e.g. `/tmp/persistence.json` - it might work but I suspect you will have other issues in the future due to the installation method.

You can take my word for it or keep looking elsewhere.

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 21:14 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/17 "2020-06-24T21:14:17Z")

</div>

incoming new message pi/data/persistence.json: ENOENT: no such file or directory, open 'pi/data/persistence.json'

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 21:15 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/18 "2020-06-24T21:15:56Z")

</div>

data/persistence.json: ENOENT: no such file or directory, open 'data/persistence.json'

---

<div class="post-metadata">

**Author:** ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)\
**Post date:** [24 June 2020 21:16 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/19 "2020-06-24T21:16:46Z")

</div>

root/data/persistence.json: EACCES: permission denied, open 'root/data/persistence.json'

---

<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:** [24 June 2020 21:19 UTC](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911/20 "2020-06-24T21:19:17Z")

</div>

Try a known existing **ABSOLUTE** path first - e.g. `/tmp`

when you dont use the `/` it tries to write to a relative path - in your case `/root/data`

so when you try `data/persistence.json` it tries to write to `/root/data/data/persistence.json` - and that path doesnt exist!

try `/tmp/persistence.json` as i said before

[Next page](https://discourse.nodered.org/t/node-red-contrib-persist-on-dietpi-eacces-permission-denied-open-root-data-persistence-json/28911.md?page=2)
