Import of unrecognized types and "<node_type> node not deployed" errors

2,716 views
Skip to first unread message

Jeff Hatch

unread,
Apr 22, 2015, 5:15:10 PM4/22/15
to node...@googlegroups.com
I have encountered a behavior in Node-RED that seems to make a set of flows in a flows*.json file unusable unless one hand edits the flow file or deletes the file and then restarts Node-RED.  The following is a set of steps that I have used to reproduce this:

1) Create a simple working flow and deploy it.  ie.:

[{"type":"tab","id":"5dbbe7df.a24418","label":"Sheet 1"},{"id":"6c67e5ba.93981c","type":"inject","name":"Hola","topic":"","payload":"\"Hola\"","payloadType":"string","repeat":"","crontab":"","once":false,"x":257,"y":259,"z":"5dbbe7df.a24418","wires":[["f48ca69d.0b7358"]]},{"id":"d80b5c16.27f4a","type":"debug","name":"","active":true,"console":"false","complete":"false","x":774,"y":272,"z":"5dbbe7df.a24418","wires":[]},{"id":"f48ca69d.0b7358","type":"function","name":"Hello","func":"msg.payload = msg.payload + \" Hello\";\nreturn msg;","outputs":1,"valid":true,"x":517,"y":268,"z":"5dbbe7df.a24418","wires":[["d80b5c16.27f4a"]]}]

2) Add a flow with a missing type.  ie. "Bean temp":

[{"id":"ffdc6b93.002398","type":"bean","name":"Yeezus","uuid":"","connectiontype":"timeout","connectiontimeout":"10"},{"id":"6d624520.929dbc","type":"bean temp","name":"Bean temp","bean":"ffdc6b93.002398","x":419,"y":157,"z":"40301a3c.bfcfe4","wires":[["1f2344c7.e0dcbb"]]},{"id":"d2aa7661.2d5588","type":"inject","name":"1 min interval","topic":"","payload":"","payloadType":"date","repeat":"1320","crontab":"","once":false,"x":265,"y":157,"z":"40301a3c.bfcfe4","wires":[["6d624520.929dbc"]]},{"id":"1f2344c7.e0dcbb","type":"function","name":"temp threshold","func":"context.previousTemp = context.previousTemp || 0;\nvar temp = msg.payload;\n\nvar upperThreshold = 26;\nvar lowerThreshold = 20;\n\n// Check if the new temp is different from the previous\nif (context.previousTemp != temp){\n\tif ( temp >= upperThreshold){\n\t\tmsg.payload = \"It's too hot! Current temperature is \" + String(temp) + \"°C\";\n\t\treturn msg;\n\t}\n\telse if ( temp <= lowerThreshold){\n\t\tmsg.payload = \"It's too cold! Current temperature is \" + String(temp) + \"°C\";\n\t\treturn msg;\n\t}\n}","outputs":1,"x":583,"y":157,"z":"40301a3c.bfcfe4","wires":[["1e8256cb.e17da9"]]},{"id":"1e8256cb.e17da9","type":"email","server":"smtp.gmail.com","port":"465","name":"sim...@giertz.com","dname":"Email","x":729.8889465332031,"y":156.88888549804688,"z":"40301a3c.bfcfe4","wires":[]}]

This produces a warning that says:

Imported unrecognized types:
    beans
    bean temp

3) It doesn't matter whether I deploy or not, once this is done the flows become unusable.  Even deleting the flow with the unrecognized node type(s) doesn't help.  The flow file still contains the unrecognized types:

[{"type":"tab","id":"5dbbe7df.a24418","label":"Broken"},{"id":"9797da57.686828","type":"bean","name":"Yeezus","uuid":"","connectiontype":"timeout","connectiontimeout":"10"},{"id":"6c67e5ba.93981c","type":"inject","name":"Hola","topic":"","payload":"\"Hola\"","payloadType":"string","repeat":"","crontab":"","once":false,"x":257,"y":259,"z":"5dbbe7df.a24418","wires":[["f48ca69d.0b7358"]]},{"id":"d80b5c16.27f4a","type":"debug","name":"","active":true,"console":"false","complete":"false","x":774,"y":272,"z":"5dbbe7df.a24418","wires":[]},{"id":"f48ca69d.0b7358","type":"function","name":"Hello","func":"msg.payload = msg.payload + \" Hello\";\nreturn msg;","outputs":1,"valid":true,"x":517,"y":268,"z":"5dbbe7df.a24418","wires":[["d80b5c16.27f4a"]]}]

4) This causes a serious deploy issue in that all the inject and other nodes do not get deployed.  For example, clicking on the inject node will cause the following:  Error: inject node not deployed.

This is a problem for an application that is trying to provide a generic capability for someone to create a custom application.  I have recreated this scenario on two different versions of Node-RED: 0.08 and 0.10.4.

Nicholas O'Leary

unread,
Apr 22, 2015, 5:28:40 PM4/22/15
to Node-RED Mailing LIst
Hi Jeff,

the node that has been left behind in your flow is of type 'bean' - that is a config node rather than a node that appears in the workspace. So whilst you have deleted the missing "bean temp" node from your flow, the "bean" config node is still lurking in the background.

From the drop-down menu, select 'Configuration nodes' - this opens the sidebar that lists all config nodes in your flow. You will see one labelled 'Unknown' - if you double click on it, you can then delete to remove if completely from your flow.

This will get you back to a working state without having to hand edit anything.

I'm aware there are improvements we could make here. The config nodes can easily get orphaned and the only way to get to them is via the sidebar panel - which if you don't know about, there's no reason for you to intuitively know to go looking.

Hope that helps,

Nick


--
http://nodered.org
---
You received this message because you are subscribed to the Google Groups "Node-RED" group.
To unsubscribe from this group and stop receiving emails from it, send an email to node-red+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jeff Hatch

unread,
Apr 23, 2015, 8:26:39 AM4/23/15
to node...@googlegroups.com
Thank you, Nick.  That does help.

Jeff


On Wednesday, April 22, 2015 at 4:15:10 PM UTC-5, Jeff Hatch wrote:
I have encountered a behavior in Node-RED that seems to make a set of flows in a flows*.json file unusable unless one hand edits the flow file or deletes the file and then restarts Node-RED.  The following is a set of steps that I have used to reproduce this:

1) Create a simple working flow and deploy it.  ie.:

[{"type":"tab","id":"5dbbe7df.a24418","label":"Sheet 1"},{"id":"6c67e5ba.93981c","type":"inject","name":"Hola","topic":"","payload":"\"Hola\"","payloadType":"string","repeat":"","crontab":"","once":false,"x":257,"y":259,"z":"5dbbe7df.a24418","wires":[["f48ca69d.0b7358"]]},{"id":"d80b5c16.27f4a","type":"debug","name":"","active":true,"console":"false","complete":"false","x":774,"y":272,"z":"5dbbe7df.a24418","wires":[]},{"id":"f48ca69d.0b7358","type":"function","name":"Hello","func":"msg.payload = msg.payload + \" Hello\";\nreturn msg;","outputs":1,"valid":true,"x":517,"y":268,"z":"5dbbe7df.a24418","wires":[["d80b5c16.27f4a"]]}]

2) Add a flow with a missing type.  ie. "Bean temp":

[{"id":"ffdc6b93.002398","type":"bean","name":"Yeezus","uuid":"","connectiontype":"timeout","connectiontimeout":"10"},{"id":"6d624520.929dbc","type":"bean temp","name":"Bean temp","bean":"ffdc6b93.002398","x":419,"y":157,"z":"40301a3c.bfcfe4","wires":[["1f2344c7.e0dcbb"]]},{"id":"d2aa7661.2d5588","type":"inject","name":"1 min interval","topic":"","payload":"","payloadType":"date","repeat":"1320","crontab":"","once":false,"x":265,"y":157,"z":"40301a3c.bfcfe4","wires":[["6d624520.929dbc"]]},{"id":"1f2344c7.e0dcbb","type":"function","name":"temp threshold","func":"context.previousTemp = context.previousTemp || 0;\nvar temp = msg.payload;\n\nvar upperThreshold = 26;\nvar lowerThreshold = 20;\n\n// Check if the new temp is different from the previous\nif (context.previousTemp != temp){\n\tif ( temp >= upperThreshold){\n\t\tmsg.payload = \"It's too hot! Current temperature is \" + String(temp) + \"°C\";\n\t\treturn msg;\n\t}\n\telse if ( temp <= lowerThreshold){\n\t\tmsg.payload = \"It's too cold! Current temperature is \" + String(temp) + \"°C\";\n\t\treturn msg;\n\t}\n}","outputs":1,"x":583,"y":157,"z":"40301a3c.bfcfe4","wires":[["1e8256cb.e17da9"]]},{"id":"1e8256cb.e17da9","type":"email","server":"smtp.gmail.com","port":"465","name":"simone@giertz.com","dname":"Email","x":729.8889465332031,"y":156.88888549804688,"z":"40301a3c.bfcfe4","wires":[]}]

Phil Grant

unread,
May 29, 2015, 1:10:05 PM5/29/15
to node...@googlegroups.com
Nick,
Thank god for this post, I added the "synchronization with emoncms" flow and it completely screwed up my flows, thanks, all up and running again now.

Phil

Stuart Llewellyn

unread,
Feb 1, 2017, 5:23:34 PM2/1/17
to Node-RED
Hi all,

I appreciate this is an old message. I am a super newbie when it comes to Node RED, but the potential for my project is huge. I started playing with it today, and copied a node into my workspace, and deployed unrecognised types. 

Prior to finding this post, I managed to stumble upon the configuration nodes in the drop-down menu and deleted the known ones.

How ever there are no more unknown states, and I still have a unusable node red.

On opening I get;

Imported unrecognised type;
ui_chart

Then another message of Flows stopped due to missing node types. Check logs for details.

I've checked logs and it basically gives the same info. There has to be fix for this? As just trying new code/nodes is such an obvious thing to want to do with this software. 

I'm running the update process now in the hope it starts from scratch and ignores this problem. Would appreciate any help anyone has. I've spent the last two hours searching around the internet with nothing solid to try.

Regards
Stuart

Nick O'Leary

unread,
Feb 1, 2017, 7:31:36 PM2/1/17
to Node-RED Mailing List
Hi Stuart,

you must have an unknown node somewhere... assuming you are running the latest version of node-red (0.16) then press Ctrl-F (Cmd-F on OSX - or select 'Search Flows' from the right-hand dropdown menu) to open the search box and search for 'unknown'. That ought to reveal it.

Failing that, you can install the node-red-dashboard module that provides ui_chart, so it will no longer be unrecognised, or had edit your flow configuration file (its location is logged at startup), to remove the ui_chart node manually (and restart node-red afterwards).

Nick



--
http://nodered.org
 
Join us on Slack to continue the conversation: http://nodered.org/slack

---
You received this message because you are subscribed to the Google Groups "Node-RED" group.
To unsubscribe from this group and stop receiving emails from it, send an email to node-red+unsubscribe@googlegroups.com.
To post to this group, send email to node...@googlegroups.com.
Visit this group at https://groups.google.com/group/node-red.
To view this discussion on the web, visit https://groups.google.com/d/msgid/node-red/58d28173-e08b-4da6-9d04-228254c6c4d7%40googlegroups.com.

Stuart Llewellyn

unread,
Feb 3, 2017, 6:10:13 PM2/3/17
to Node-RED
Hi Nick, thanks for the response. I planned on installing the dashboard anyway. and that solved it. Thanks for your help
To unsubscribe from this group and stop receiving emails from it, send an email to node-red+u...@googlegroups.com.

Umer Khan

unread,
Mar 21, 2017, 12:11:33 PM3/21/17
to Node-RED
Hi Stuart,

I am running latest node-red version, and even having node-red-dashboard installed in node-modules I am getting missing node-types

- ui_base

- ui_form

- ui_text


getting ui_base] Error: Cannot find module 'encodeurl' on loading nodes. 


Any guess?


/Umer

To unsubscribe from this group and stop receiving emails from it, send an email to node-red+u...@googlegroups.com.

Dave C-J

unread,
Mar 21, 2017, 2:32:33 PM3/21/17
to node...@googlegroups.com
which version of node.js ? and which platform are you running on ?

Umer Khan

unread,
Mar 21, 2017, 6:00:52 PM3/21/17
to Node-RED


Node.js  version: v6.10.0

Node-RED version: v0.16.2

Reply all
Reply to author
Forward
0 new messages