Uncaught exception in node red dashboard (ui_dropdown)

Hi!

I found bug in ui_dropdown. It crashes server. Windows 10!
Inkednodered_error_LI|690x176

Please fix it ! :frowning: Thank you!

Hi @bart

Can you share any details about the flow that is hitting this error?

How is the node configured? What messages are you passing it?

Without more information, you aren't giving us a lot to go on.

Hi @knolleary

I´m injecting to the node table with numbers(int).

I have only filled a placeholder in node configuration.

After injecting new data to ui_dropdown is all good. Error occurs after selecting a value.

That really still doesn't give enough specific information for us to try to recreate it. Can you share an example flow?

Most likely it is an user error.

Make sure that the number selection or string selection is consistent. See attached picture. "09" is for numbers, "az" for strings.

The new dashboard version 3.0.4 is pretty strict about the data type. Mixing them up can crash Node-RED. I actually like it, coming from strict C/C++ background.

But it should never cause a crash. It may be strict, but it should handle misconfigurations with grace.

Yes I agree.

Here is how to create a crash from the dropdown menu:

  1. Import the following flow. Inject the message to create the dropdown list.
[{"id":"cedb9ad9296ad6e3","type":"ui_dropdown","z":"a7dc7375.637e7","name":"","label":"test","tooltip":"","place":"Select option","group":"c5dac9f2874b5c3a","order":3,"width":0,"height":0,"passthru":true,"multiple":false,"options":[],"payload":"","topic":"topic","topicType":"msg","className":"","x":510,"y":220,"wires":[["d746a8a341e105ff"]]},{"id":"d746a8a341e105ff","type":"debug","z":"a7dc7375.637e7","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":730,"y":220,"wires":[]},{"id":"78e22dd96035dfe2","type":"function","z":"a7dc7375.637e7","name":"","func":"\n\n\nmsg.options=[50,100,200];\n\nmsg.payload=50;\n        \n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":340,"y":220,"wires":[["cedb9ad9296ad6e3"]]},{"id":"ca1e42e43367a248","type":"inject","z":"a7dc7375.637e7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":170,"y":220,"wires":[["78e22dd96035dfe2"]]},{"id":"c5dac9f2874b5c3a","type":"ui_group","name":"Default","tab":"b15d581341d0093f","order":1,"disp":false,"width":"8","collapse":false,"className":""},{"id":"b15d581341d0093f","type":"ui_tab","name":"Home","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
  1. Select another value such as 100 from the list. You will notice that Node-RED crashes.

The above crash case is different from the data type discrepancy crash that I mentioned before. Sorry I can not duplicate the string/number crash case after we corrected the data type (I just remembered that we corrected the data type and the software stopped crashing).
Maybe OP can contribute the test case.