Deploy button doesn't click

When I click the red deploy button, it no longer does anything; it stays red rather than going grey, and the nodes are not deployed.

Browser console:

Uncaught TypeError: Cannot read property 'name' of undefined
at m (red.min.js:16)
at red.min.js:16
at Object.eachConfig (red.min.js:16)
at R (red.min.js:16)
at HTMLAnchorElement. (red.min.js:16)
at HTMLAnchorElement.dispatch (vendor.js:4)
at HTMLAnchorElement.r.handle (vendor.js:4)

I was running Node RED 20.5, but just upgraded to 20.8 and rebooted, however this has not fixed it.

There's nothing in the console when I press the red button. How can I start to troubleshoot this problem? Thanks

Ok.

Quick question:

Could you go into a "terminal" (CLI) and type a couple of commands - please.

cd .node-red
node-red-stop
node-red-start

and see what happens.

Please copy/paste the output.

Do you have a flow loaded?

Hi, I'm running NR as a service, so I have run:

sudo service node-red stop
node-red

I get:

Welcome to Node-RED
===================

22 Sep 13:39:37 - [info] Node-RED version: v0.20.8
22 Sep 13:39:37 - [info] Node.js  version: v8.10.0
22 Sep 13:39:37 - [info] Linux 4.15.0-64-generic x64 LE
22 Sep 13:39:38 - [info] Loading palette nodes
22 Sep 13:39:38 - [debug] Module: node-red-contrib-stoptimer 0.0.7
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-stoptimer
22 Sep 13:39:38 - [debug] Module: node-red-contrib-norelite 2.6.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/.node-red-contrib-norelite.DELETE
22 Sep 13:39:38 - [debug] Module: node-red-contrib-amazon-echo 0.1.8
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-amazon-echo
22 Sep 13:39:38 - [debug] Module: node-red-contrib-bigtimer 2.0.9
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-bigtimer
22 Sep 13:39:38 - [debug] Module: node-red-contrib-cpu 0.0.4
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-cpu
22 Sep 13:39:38 - [debug] Module: node-red-contrib-dsm 0.14.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-dsm
22 Sep 13:39:38 - [debug] Module: node-red-contrib-google-tts 1.1.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-google-tts
22 Sep 13:39:38 - [debug] Module: node-red-contrib-home-assistant-websocket 0.15.0
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-home-assistant-websocket
22 Sep 13:39:38 - [debug] Module: node-red-contrib-httpauth 1.0.12
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-httpauth
22 Sep 13:39:38 - [debug] Module: node-red-contrib-huemagic 1.9.0
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-huemagic
22 Sep 13:39:38 - [debug] Module: node-red-contrib-image-output 0.3.0
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-image-output
22 Sep 13:39:38 - [debug] Module: node-red-contrib-influxdb 0.3.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-influxdb
22 Sep 13:39:38 - [debug] Module: node-red-contrib-interval-length 0.0.3
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-interval-length
22 Sep 13:39:38 - [debug] Module: node-red-contrib-mqtt-broker 0.2.4
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-mqtt-broker
22 Sep 13:39:38 - [debug] Module: node-red-contrib-multipart-stream-decoder 0.0.4
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-multipart-stream-decoder
22 Sep 13:39:38 - [debug] Module: node-red-contrib-multipart-stream-encoder 0.0.2
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-multipart-stream-encoder
22 Sep 13:39:38 - [debug] Module: node-red-contrib-mytimeout 3.0.2
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-mytimeout
22 Sep 13:39:38 - [debug] Module: node-red-contrib-nest 0.1.9
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-nest
22 Sep 13:39:38 - [debug] Module: node-red-contrib-netatmo 0.2.0
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-netatmo
22 Sep 13:39:38 - [debug] Module: node-red-contrib-rfxcom 2.6.3
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-rfxcom
22 Sep 13:39:38 - [debug] Module: node-red-contrib-squeezebox 0.1.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-squeezebox
22 Sep 13:39:38 - [debug] Module: node-red-contrib-alexa-local 0.3.24
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-alexa-local
22 Sep 13:39:38 - [debug] Module: node-red-contrib-telegrambot 5.5.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-telegrambot
22 Sep 13:39:38 - [debug] Module: node-red-contrib-timeout 1.1.4
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-timeout
22 Sep 13:39:38 - [debug] Module: node-red-contrib-timeouttrigger 0.0.2
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-timeouttrigger
22 Sep 13:39:38 - [debug] Module: node-red-contrib-ui-led 0.2.3
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-ui-led
22 Sep 13:39:38 - [debug] Module: node-red-contrib-viseo-ffmpeg 0.2.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-viseo-ffmpeg
22 Sep 13:39:38 - [debug] Module: node-red-contrib-voicerss-tts 0.0.1
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-contrib-voicerss-tts
22 Sep 13:39:38 - [debug] Module: node-red-dashboard 2.16.2
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-dashboard
22 Sep 13:39:38 - [debug] Module: node-red-node-base64 0.1.3
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-base64
22 Sep 13:39:38 - [debug] Module: node-red-node-darksky 0.1.18
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-darksky
22 Sep 13:39:38 - [debug] Module: node-red-node-dropbox 1.0.2
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-dropbox
22 Sep 13:39:38 - [debug] Module: node-red-node-prowl 0.0.9
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-prowl
22 Sep 13:39:38 - [debug] Module: node-red-node-pushbullet 0.0.12
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-pushbullet
22 Sep 13:39:38 - [debug] Module: node-red-node-pushover 0.0.14
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-pushover
22 Sep 13:39:38 - [debug] Module: node-red-node-random 0.1.2
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-random
22 Sep 13:39:38 - [debug] Module: node-red-node-serialport 0.6.8
22 Sep 13:39:38 - [debug]         /home/mat/.node-red/node_modules/node-red-node-serialport
22 Sep 13:39:38 - [debug] Module: node-red-node-email 1.6.3
22 Sep 13:39:38 - [debug]         /usr/local/lib/node_modules/node-red/node_modules/node-red-node-email
22 Sep 13:39:38 - [debug] Module: node-red-node-feedparser 0.1.14
22 Sep 13:39:38 - [debug]         /usr/local/lib/node_modules/node-red/node_modules/node-red-node-feedparser
22 Sep 13:39:38 - [debug] Module: node-red-node-rbe 0.2.5
22 Sep 13:39:38 - [debug]         /usr/local/lib/node_modules/node-red/node_modules/node-red-node-rbe
22 Sep 13:39:38 - [debug] Module: node-red-node-sentiment 0.1.4
22 Sep 13:39:38 - [debug]         /usr/local/lib/node_modules/node-red/node_modules/node-red-node-sentiment
22 Sep 13:39:38 - [debug] Module: node-red-node-tail 0.0.2
22 Sep 13:39:38 - [debug]         /usr/local/lib/node_modules/node-red/node_modules/node-red-node-tail
22 Sep 13:39:38 - [debug] Module: node-red-node-twitter 1.1.5
22 Sep 13:39:38 - [debug]         /usr/local/lib/node_modules/node-red/node_modules/node-red-node-twitter
22 Sep 13:39:38 - [warn] rpi-gpio : Raspberry Pi specific node set inactive
22 Sep 13:39:38 - [warn] rpi-gpio : Cannot find Pi RPi.GPIO python library
Missing ENV var CONFIG_PATH
22 Sep 13:39:40 - [info] Dashboard version 2.16.2 started at /red/ui
22 Sep 13:39:40 - [info] Settings file  : /home/mat/.node-red/settings.js
22 Sep 13:39:40 - [info] HTTP Static    : /home/mat/.node-red/public
22 Sep 13:39:40 - [info] Context store  : 'default' [module=localfilesystem]
22 Sep 13:39:40 - [info] User directory : /home/mat/.node-red
22 Sep 13:39:40 - [warn] Projects disabled : editorTheme.projects.enabled=false
22 Sep 13:39:40 - [info] Flows file     : /home/mat/.node-red/flows_automate.json
22 Sep 13:39:40 - [info] Server now running at http://127.0.0.1:1880/red/
22 Sep 13:39:40 - [debug] loaded flow revision: 400b9c23d9b7f35378e1d4bcf2f51c76
22 Sep 13:39:40 - [debug] red/runtime/nodes/credentials.load : no user key present
22 Sep 13:39:40 - [debug] red/runtime/nodes/credentials.load : using default key
22 Sep 13:39:40 - [debug] red/runtime/nodes/credentials.load : keyType=system
22 Sep 13:39:40 - [warn] 

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

22 Sep 13:39:41 - [info] Starting flows
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : global
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : fa3892e2.c6cfd
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : a38201e3.f0e51
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : fd75c8e.6e63e38
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : a09201df.15c79
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : 705d403b.f2b8
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : d91c856c.90f068
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : acccd118.a467d
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : 548d42c.321903c
22 Sep 13:39:41 - [debug] red/nodes/flows.start : starting flow : 3d86e78e.17ff28
22 Sep 13:39:41 - [info] [squeezebox-server:Logitech Media Server] Configuring connection to squeezebox Server at http://192.168.0.34:9000
22 Sep 13:39:41 - [debug] [server:Home Assistant] instantiated node, name: Home Assistant
22 Sep 13:39:41 - [info] [mosca in:f016d29c.96c5f] Binding mosca mqtt server on port: 1883
22 Sep 13:39:42 - [debug] [api-current-state:38f8b647.bdac5a] instantiated node, name: undefined
22 Sep 13:39:44 - [error] [prowl:Anna Prowl - Priority 0] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Anna Prowl - Priority 1] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Anna Prowl - Priority 2] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Joe Prowl - Priority 0] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Joe Prowl - Priority 1] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Joe Prowl - Priority 2] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Malakai Prowl - Priority 0] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Malakai Prowl - Priority 1] No Prowl credentials set.
22 Sep 13:39:44 - [error] [prowl:Malakai Prowl - Priority 2] No Prowl credentials set.
22 Sep 13:39:46 - [info] Started flows
22 Sep 13:39:46 - [debug] [server:Home Assistant] WebSocket Connecting http://hassio/homeassistant
22 Sep 13:39:46 - [debug] [server:Home Assistant] config server event listener connecting
22 Sep 13:39:46 - [error] [function:Generate preset list] TypeError: Cannot convert undefined or null to object
22 Sep 13:39:46 - [info] [rfx-sensor:/home/mat/virtualcom0 - RFXCom] connecting to /home/mat/virtualcom0
22 Sep 13:39:46 - [info] serial port /home/mat/virtualcom1 opened at 38400 baud 8N1
22 Sep 13:39:46 - [debug] [server:Home Assistant] config server event listener closed
22 Sep 13:39:46 - [info] [mqtt-broker:Mayfield MQTT] Connected to broker: nodered@mqtt://192.168.0.34:1883
22 Sep 13:39:46 - [rfxcom] on /home/mat/virtualcom0 - RFXtrx433 disconnected from /home/mat/virtualcom0
22 Sep 13:39:46 - [rfxcom] on /home/mat/virtualcom0 - Cleared command message queue
22 Sep 13:39:46 - [info] [rfx-sensor:/home/mat/virtualcom0 - RFXCom] disconnected: bad file descriptor
22 Sep 13:39:46 - [error] serial port /home/mat/virtualcom1 closed unexpectedly
22 Sep 13:39:51 - [debug] [server:Home Assistant] WebSocket Connecting http://hassio/homeassistant
22 Sep 13:39:51 - [debug] [server:Home Assistant] config server event listener connecting
22 Sep 13:39:51 - [debug] [server:Home Assistant] config server event listener closed
22 Sep 13:39:52 - [rfxcom] on /home/mat/virtualcom0 - Serial port not open
22 Sep 13:39:52 - [rfxcom] on /home/mat/virtualcom0 - Dropped : 0D,00,00,00,00,00,00,00,00,00,00,00,00,00
22 Sep 13:39:52 - [info] [rfx-sensor:/home/mat/virtualcom0 - RFXCom] connecting to /home/mat/virtualcom0
22 Sep 13:39:56 - [debug] [server:Home Assistant] WebSocket Connecting http://hassio/homeassistant
22 Sep 13:39:56 - [debug] [server:Home Assistant] config server event listener connecting
22 Sep 13:39:56 - [debug] [server:Home Assistant] config server event listener closed
22 Sep 13:39:58 - [rfxcom] on /home/mat/virtualcom0 - Sent    : 0D,00,00,01,00,00,00,00,00,00,00,00,00,00
22 Sep 13:39:58 - [rfxcom] on /home/mat/virtualcom0 - Sent    : 0D,00,00,02,02,00,00,00,00,00,00,00,00,00
22 Sep 13:39:58 - [rfxcom] on /home/mat/virtualcom0 - Received: 0D,01,00,02,02,53,FA,00,02,27,00,01,02,1C
22 Sep 13:39:58 - [rfxcom] on /home/mat/virtualcom0 - Started command message queue
22 Sep 13:39:58 - [info] [rfx-sensor:/home/mat/virtualcom0 - RFXCom] connected: Serial port /home/mat/virtualcom0
22 Sep 13:40:01 - [debug] [server:Home Assistant] WebSocket Connecting http://hassio/homeassistant
22 Sep 13:40:01 - [debug] [server:Home Assistant] config server event listener connecting
22 Sep 13:40:01 - [debug] [server:Home Assistant] config server event listener closed
22 Sep 13:40:01 - [info] serial port /home/mat/virtualcom1 opened at 38400 baud 8N1
22 Sep 13:40:06 - [debug] [server:Home Assistant] WebSocket Connecting http://hassio/homeassistant
22 Sep 13:40:06 - [debug] [server:Home Assistant] config server event listener connecting
22 Sep 13:40:06 - [debug] [server:Home Assistant] config server event listener closed
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope global
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope b6f158a2.116b88:fa3892e2.c6cfd
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope 9752873b.4fefa8:705d403b.f2b8
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope 27d13e60.fa34a2:705d403b.f2b8
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope 2a677bc6.813ed4:705d403b.f2b8
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope 4b084694.2b3208:705d403b.f2b8
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope 80e94b1e.88bb98:705d403b.f2b8
22 Sep 13:40:11 - [debug] Flushing localfilesystem context scope 7e4405b2.f3422c:705d403b.f2b8
22 Sep 13:40:11 - [debug] [server:Home Assistant] WebSocket Connecting http://hassio/homeassistant
22 Sep 13:40:11 - [debug] [server:Home Assistant] config server event listener connecting
22 Sep 13:40:11 - [debug] [server:Home Assistant] config server event listener closed
22 Sep 13:40:12 - [error] [api-current-state:38f8b647.bdac5a] Entity could not be found in cache for entity_id: media_player.living_room
22 Sep 13:40:16 - [debug] [server:Home Assistant] WebSocket Connecting http://hassio/homeassistant
22 Sep 13:40:16 - [debug] [server:Home Assistant] config server event listener connecting
22 Sep 13:40:16 - [debug] [server:Home Assistant] config server event listener closed

Thanks.

I'm not the person who can help you with the errors, but I have at least got you to post them.

I shall have a look and see what I can find though.

As you can see there is a problem with the credentials.

This line is a bit of a worry.
[error] [function:Generate preset list] TypeError: Cannot convert undefined or null to object

This also could be of concern:
[error] serial port /home/mat/virtualcom1 closed unexpectedly

Though the line above it is also a worry: bad file

Higher up the list there is this - but it is only a warn
[warn] rpi-gpio : Cannot find Pi RPi.GPIO python library Missing ENV var CONFIG_PATH

I hope someone who is smarter than me can help you.

Oh, my take on the bigger picture is that there is a serious problem with the flow. Somewhere.
It won't let you deploy because it basically won't work.

Hi, I appreciate you trying to help, however you've pointed towards a few coding errors that have existed in my flows for about a year now. This problem is recent - today for the first time I noticed it. Maybe there is a problem with the rpi-gpio error, however again I don't think this is relevant as Node-RED is not running on an RPi anyway, and I've never used the Pi's GPIO with Node-RED.

I think this points towards a bug, should I open an issue @knolleary?

No I agree.

Old problems are painful though. Believe me when I say that. I've been bitten enough times.

But anyway, alas when you are in this kind of situation you need to eliminate all unknowns as painful as this will be.

You need to cut it into small pieces of which you have control. Then you test each one and see where it falls over.

You may want to try starting node-red in SAFE mode.
though it seems it is kind of defaulting to that anyway.

(from the CLI)

sudo node-red-stop
sudo node-red --safe

But I feel there is a problem that you need sudo to do this.
I was in that place a long time ago and it really wasn't good for the bigger picture on how things worked.

What about the line:
[error] [function:Generate preset list] TypeError: Cannot convert undefined or null to object
That will really make a mess.
If it is trying to read something which is undefined or null, the wheels will fall off very quickly.

Try to find this node and find out why this is as it is shown.

I would also wait for someone who is smarter than me to reply and explain the errors better than I have.

Have you tried clearing the cache in the browser and trying again?
What was the last thing you did before it stopped working?

(Shouldn't you be asking @hazymat?)

Yes, I replied to the wrong message, sorry.

Sorright. I just wanted to check.

Don't use sudo with either of those commands.

2 Likes
  1. I have cleared the cache, but I've tried and problem occurs in Firefox and Edge as well
  2. I don't recall what the last thing I did was. Probably updating an InfluxDB node with a different measurement name.

Problem is, I can't go back and change any nodes, because ... I can't deploy changes!

Yep, node-red runs under user context, at least it does for me!

Well, that's not exactly true.

It won't deploy because something in some/one of the nodes is not working.
Changing it to the correct value/setting could/will allow it to deploy.

Wince you say you updated the influxDB node, this is my plan:
(no guarantees)

BACKUP your flows.

(this isn't too difficult.)

Make a directory (say ~/JUST_IN_CASE)

Copy all the .json files from the .node-red directory to this new one.

COPY

Go into the node-red editor.

delete all nodes associated to the influxDB.

See if that helps.

You may have to restart node-red.
(From .node-red folder in the CLI)
node-red-restart

If it doesn't, copy the files back. No harm. No fowl.

Do you see anything in the node-red log when you click deploy?
If you haven't already then try @Trying_to_learn 's suggestion of starting with --safe (without sudo). If that works (possibly only allowing a single deploy) then it does show it is something going wrong with the flow.
Another thing to try is move the flows file away and restart node-red. It should create an empty flows file. See if it is ok then.

if using SAFE mode

Just letting you know:
It has changed how it works - from my perspective.

Originally (I am sure) all you had to do was click on a debug node and turn it on/off.
Then you could deploy.

Now you have to actually move a new node into the edit area.
I'd pick a debug node and just put it anywhere.

Good luck.

Thanks all for your comments. They were very helpful. I didn't think this would be caused by something I had done in the front end, but I was wrong.

Luckily, I have a flow that automatically backs-up Node-RED configuration files to a zip file stored on Dropbox, every 3 hours. It was possible to pull out the flows_server.json file from a backup from a week ago, copy it over and restart node-red. Problem solved.

Now I just have to go through all the backups and home-in on the time that the deploy button stopped working, then compare with the previous backup to see exactly what caused it.

Please let me know if this is something you want to hear about @knolleary otherwise I will refrain from tagging you further :slight_smile:

I don't know about Nick. But I'm sure we would be interested in finding out what the problem was. Please consider adding to this thread when you find out, you never know when someone else might come across a similar problem.

I suggest re-trying with the latest just to make sure it still fails (you may have done this already of course).

I would very much like to hear what you discover. The editor should never hit an error like that, but until youve narrowed it down a bit, there is not much we can do.