# \[node-red-dashboard/ui\_button\] SyntaxError: Unexpected token

**URL:** https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844
**Category:** Dashboard
**Created:** [24 September 2019 06:43 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844 "2019-09-24T06:43:35Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![IoTPlay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/iotplay/32/40_2.png) [@IoTPlay](https://discourse.nodered.org/u/IoTPlay)
#### Post date: [24 September 2019 06:43 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/1 "2019-09-24T06:43:35Z")

</div>

Hi, is something wrong with latest version of dashboard?

```auto
24 Sep 08:37:25 - [info] Node-RED version: v0.20.7
24 Sep 08:37:25 - [info] Node.js version: v8.1.3
24 Sep 08:37:25 - [info] Linux 4.19.66-v7+ arm LE
...
24 Sep 08:40:48 - [info] Installing module: node-red-dashboard, version: 2.16.3
24 Sep 08:41:05 - [info] Installed module: node-red-dashboard
24 Sep 08:41:06 - [info] Added node types:
24 Sep 08:41:06 - [info] - node-red-dashboard:ui_base
24 Sep 08:41:06 - [info] - node-red-dashboard:ui_button : SyntaxError: Unexpected token ...

```

Above after 1st load, and then, when I stop and start the server:

```auto
24 Sep 08:44:45 - [info] Node-RED version: v0.20.7
24 Sep 08:44:45 - [info] Node.js version: v8.1.3
24 Sep 08:44:45 - [info] Linux 4.19.66-v7+ arm LE
24 Sep 08:44:46 - [info] Loading palette nodes
24 Sep 08:44:51 - [warn] ------------------------------------------------------
24 Sep 08:44:51 - [warn] [node-red-dashboard/ui_button] SyntaxError: Unexpected token ...
24 Sep 08:44:51 - [warn] ------------------------------------------------------

```

Which then lets the server fall over:

```auto
24 Sep 08:46:50 - TypeError: Cannot read property 'emit' of undefined
    at /data/node_modules/node-red-dashboard/ui.js:406:11
    at _combinedTickCallback (internal/process/next_tick.js:95:7)
    at process._tickCallback (internal/process/next_tick.js:161:9)
npm info lifecycle node-red-docker@1.0.0~start: Failed to exec start script
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-red-docker@1.0.0 start: `node $NODE_OPTIONS node_modules/node-red/red.js -v $FLOWS "--userDir" "/data"`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-red-docker@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

```

And then, the server falls over every time after that. And that is without. single flow element created....

---

<div class="post-metadata">

### Author: ![janvda](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/janvda/32/234_2.png) [@janvda](https://discourse.nodered.org/u/janvda)
#### Post date: [24 September 2019 15:33 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/2 "2019-09-24T15:33:55Z")

</div>

... I am suffering from the same issue. You are not alone if this might comfort you.

```auto
24.09.19 17:24:53 (+0200) node-red Welcome to Node-RED
24.09.19 17:24:53 (+0200) node-red ===================
24.09.19 17:24:53 (+0200) node-red  
24.09.19 17:24:53 (+0200) node-red 24 Sep 15:24:53 - [info] Node-RED version: v0.20.7
24.09.19 17:24:53 (+0200) node-red 24 Sep 15:24:53 - [info] Node.js version: v8.1.3
24.09.19 17:24:53 (+0200) node-red 24 Sep 15:24:53 - [info] Linux 4.14.98 arm LE
24.09.19 17:24:54 (+0200) node-red 24 Sep 15:24:54 - [info] Loading palette nodes
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [warn] ------------------------------------------------------
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [warn] [node-red-dashboard/ui_button] SyntaxError: Unexpected token ...
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [warn] ------------------------------------------------------
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [info] Settings file : /data/settings.js
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [info] Context store : 'default' [module=memory]
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [info] User directory : /data
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [warn] No active project : using default flows file
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [info] Flows file : /data/flows.json
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [info] Creating new flow file
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [warn] 
24.09.19 17:24:58 (+0200) node-red  
24.09.19 17:24:58 (+0200) node-red ---------------------------------------------------------------------
24.09.19 17:24:58 (+0200) node-red Your flow credentials file is encrypted using a system-generated key.
24.09.19 17:24:58 (+0200) node-red  
24.09.19 17:24:58 (+0200) node-red If the system-generated key is lost for any reason, your credentials
24.09.19 17:24:58 (+0200) node-red file will not be recoverable, you will have to delete it and re-enter
24.09.19 17:24:58 (+0200) node-red your credentials.
24.09.19 17:24:58 (+0200) node-red  
24.09.19 17:24:58 (+0200) node-red You should set your own key using the 'credentialSecret' option in
24.09.19 17:24:58 (+0200) node-red your settings file. Node-RED will then re-encrypt your credentials
24.09.19 17:24:58 (+0200) node-red file using your chosen key the next time you deploy a change.
24.09.19 17:24:58 (+0200) node-red ---------------------------------------------------------------------
24.09.19 17:24:58 (+0200) node-red  
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [info] Starting flows
24.09.19 17:24:58 (+0200) node-red 24 Sep 15:24:58 - [info] Started flows
24.09.19 17:24:59 (+0200) node-red 24 Sep 15:24:59 - [info] Server now running at http://127.0.0.1:80/

```

---

<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: [24 September 2019 15:40 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/3 "2019-09-24T15:40:31Z")

</div>

I think your node.js version is too old. The latest version of Node 8 is 8.16.1.

---

<div class="post-metadata">

### Author: ![IoTPlay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/iotplay/32/40_2.png) [@IoTPlay](https://discourse.nodered.org/u/IoTPlay)
#### Post date: [24 September 2019 16:34 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/4 "2019-09-24T16:34:53Z")

</div>

Ahh, thanks @knolleary, this must then be caused by the latest RPi docker image, I had to downgrade to `nodered/node-red-docker:0.20.7-rpi` , 0.20.8-rpi does not work.

---

<div class="post-metadata">

### Author: ![janvda](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/janvda/32/234_2.png) [@janvda](https://discourse.nodered.org/u/janvda)
#### Post date: [24 September 2019 18:09 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/5 "2019-09-24T18:09:55Z")

</div>

For the same reason I have also downgraded to docker version 0.20.7-rpi-v8.

Here below my docker file.

```auto
#see https://hub.docker.com/r/nodered/node-red-docker
FROM nodered/node-red-docker:0.20.7-rpi-v8

# installing editor nano 
USER root
RUN apt-get update && apt-get install nano

# Following command installs node-red-admin which is needed if you want to create a hashed password 
# for the node-red editor. For that run command "node-red-admin hash-pw" in a terminal window
# for the node-red service in the BalenaCloud dashboard.
RUN npm install -g --unsafe-perm node-red-admin

# see https://stackoverflow.com/questions/53026557/error-listen-eacces-0-0-0-080-when-deploying-docker-image-nodered-node-red-doc
RUN sudo setcap 'cap_net_bind_service=+ep' $(eval readlink -f `which node`)
USER node-red

RUN npm install node-red-contrib-resinio
RUN npm install node-red-dashboard
RUN npm install node-red-contrib-credentials

COPY ./settings.js /data/settings.js
#COPY ./flows.json /data/flows.json

```

---

<div class="post-metadata">

### Author: ![IoTPlay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/iotplay/32/40_2.png) [@IoTPlay](https://discourse.nodered.org/u/IoTPlay)
#### Post date: [24 September 2019 20:15 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/6 "2019-09-24T20:15:35Z")

</div>

Thank you, switched over to

Raymondmm’s docker image, all problems solved.

[https://hub.docker.com/r/raymondmm/node-red](https://hub.docker.com/r/raymondmm/node-red)

---

<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: [24 September 2019 20:17 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/7 "2019-09-24T20:17:20Z")

</div>

FYI - We're in the process of merging the great work Raymond has done into the official images (with his help)

---

<div class="post-metadata">

### Author: ![janvda](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/janvda/32/234_2.png) [@janvda](https://discourse.nodered.org/u/janvda)
#### Post date: [24 September 2019 20:53 UTC](https://discourse.nodered.org/t/node-red-dashboard-ui-button-syntaxerror-unexpected-token/15844/8 "2019-09-24T20:53:45Z")

</div>

Indeed by upgrading the node.js version from v8.1.3 to v8.16.1 I got rid of the error `[node-red-dashboard/ui_button] SyntaxError: Unexpected token ...`

I have added the following command to my balena Dockerfile to upgrade it to version v8.16.1

```auto
RUN npm cache clean -f ; npm install -g n ; n 8.16.1

```

As evidence that the change fixed it, see the log file here below.

```auto
24.09.19 22:49:55 (+0200) node-red 24 Sep 20:49:55 - [info] 
24.09.19 22:49:55 (+0200) node-red  
24.09.19 22:49:55 (+0200) node-red Welcome to Node-RED
24.09.19 22:49:55 (+0200) node-red ===================
24.09.19 22:49:55 (+0200) node-red  
24.09.19 22:49:55 (+0200) node-red 24 Sep 20:49:55 - [info] Node-RED version: v0.20.7
24.09.19 22:49:55 (+0200) node-red 24 Sep 20:49:55 - [info] Node.js version: v8.16.1
24.09.19 22:49:55 (+0200) node-red 24 Sep 20:49:55 - [info] Linux 4.14.98 arm LE
24.09.19 22:49:56 (+0200) node-red 24 Sep 20:49:56 - [info] Loading palette nodes
24.09.19 22:50:01 (+0200) node-red 24 Sep 20:50:01 - [info] Dashboard version 2.16.3 started at /ui
24.09.19 22:50:02 (+0200) node-red 24 Sep 20:50:02 - [info] Settings file : /data/settings.js
24.09.19 22:50:02 (+0200) node-red 24 Sep 20:50:02 - [info] Context store : 'default' [module=memory]
24.09.19 22:50:02 (+0200) node-red 24 Sep 20:50:02 - [info] User directory : /data
24.09.19 22:50:02 (+0200) node-red 24 Sep 20:50:02 - [warn] No active project : using default flows file
24.09.19 22:50:02 (+0200) node-red 24 Sep 20:50:02 - [info] Flows file : /data/flows.json
24.09.19 22:50:02 (+0200) node-red 24 Sep 20:50:02 - [info] Creating new flow file
24.09.19 22:50:02 (+0200) node-red 24 Sep 20:50:02 - [info] Starting flows

```

FYI my complete docker file.

```auto
#see https://hub.docker.com/r/nodered/node-red-docker
FROM nodered/node-red-docker:0.20.7-rpi-v8

# installing editor nano 
USER root
RUN apt-get update && apt-get install nano

# upgraded node.js to current latest version 8.16.1
# apparently the version in the docker image is pretty old.
RUN npm cache clean -f ; npm install -g n ; n 8.16.1

# Following command installs node-red-admin which is needed if you want to create a hashed password 
# for the node-red editor. For that run command "node-red-admin hash-pw" in a terminal window
# for the node-red service in the BalenaCloud dashboard.
RUN npm install -g --unsafe-perm node-red-admin

# see https://stackoverflow.com/questions/53026557/error-listen-eacces-0-0-0-080-when-deploying-docker-image-nodered-node-red-doc
RUN sudo setcap 'cap_net_bind_service=+ep' $(eval readlink -f `which node`)
USER node-red

RUN npm install node-red-contrib-resinio
RUN npm install node-red-dashboard
RUN npm install node-red-contrib-credentials

COPY ./settings.js /data/settings.js

```
