Nodes stopped working upon move from Node-red 3.1.0 to 3.1.3

I upgraded my Node-red today from v3.1.0 to 3.1.3 (running on Windows), and my Oracle DB node (node-red-contrib-oracledb-mod, version 0.6.3) stopped working.
The underlying configuration node (connection profile) is always flagged as having an error (red triangle) even when configured correctly, and the interaction with the DB fails. Everything was working well on NR 3.1.0.
I'm running Node JS 20.10.0 (LTS) and tested this with other Node JS versions, but problem persists.

Did anyone else encounter this or has an idea how to solve?

I'd suggest rolling back to 3.1.0 and see what happens

I think the command would be

npm install -g --unsafe-perm node-red@3.1.0

Hopefully someone will correct me if I've got that wrong

I think that the node validation checking became more robust in 3.1.3, so check that you have valid entries for all fields in the node. If it has a config node for the database node check that too. Even if you can't see any problem, make a minor tweak in each one if you can (a name change for example) and click Done for the nodes. See if that helps.

Otherwise select the node and export it and paste it here.

I see from the node's github page that there are a number of unaddressed issues with the node, it appears to have been abandoned, so if you have ongoing problems with it you may have to look for an alternative solution.

In theory, the stricter checking came from explicit changes we made to individual nodes to do that checking - rather than something that would apply more generally to all nodes.

@omrid can you export an example of the node with an error and share it here? Just make sure you replace any sensitive information in the export such as urls/usernames etc.

Here is an example.
Thanks.

[
    {
        "id": "37600d92351bfbdd",
        "type": "oracledb",
        "z": "42c9757190b9a252",
        "name": "",
        "usequery": false,
        "query": "INSERT INTO oracleTableName\n\t(fieldName1, fieldName2, Fieldname3)\n\tVALUES (\n\t\t:valueOfValuesArrayIndex0,\n\t\t:valueOfValuesArrayIndex1,\n\t\t:valueOfValuesArrayIndex2,\n\t)",
        "usemappings": false,
        "mappings": "[\n\t\"location.of.first.array.index.field.in.msg.payload\",\n\t\"location.of.second.array.index.field\",\n\t\"last_array_indexfield.in[3]\"\n]",
        "server": "60fdb07a114d21e9",
        "resultaction": "multi",
        "resultlimit": 100,
        "x": 160,
        "y": 100,
        "wires": [
            []
        ]
    },
    {
        "id": "60fdb07a114d21e9",
        "type": "oracle-server",
        "connectionname": "Test-profile",
        "tnsname": "",
        "connectiontype": "Classic",
        "instantclientpath": "C:\\Oracle\\instantclient_21_10",
        "host": "ILRNARADEMO01",
        "port": "1521",
        "reconnect": true,
        "reconnecttimeout": "5000",
        "db": "RADB"
    }
]

That is odd, the export includes the server config node, but when I import and look in the db node the server is not there.

Odd indeed. I just tried here, and both node & config node import correctly (with the validation error persisting)

Same issue, from 3.1.0 to 3.1.3 on Ubuntu Oracle Cloud with NodeJs v18.19.0

Just about to upgrade from NR 3.1.0 to 3.1.3 on a raspberry pi 4

Given this thread, is that recommended?

if so what is the recommended process for a minor upgrade.

wondering if the process mentioned here is required.

As far as I know this is the only reported problem with 3.1.3

You can either run the install script from the docs, which will upgrade it, or you can run
sudo npm install -g --unsafe-perm node-red@latest
Then restart node red.

1 Like

No, that is a specific problem to do with the way Losinit manages his system.

I've identified the specific issue with the oracle node and raised a PR against if with the fix: Ensure port validation returns boolean by knolleary · Pull Request #37 · vtulluru/node-red-contrib-oracledb-mod · GitHub

Thanks @knolleary. Does the above mean that a future Node-red fix will know how to handle the existing Oracle config node, or that this node will need to be updated to return a Boolean result?

It requires the node to be updated, but I see (looking at the pull request link posted by Nick) that the author has already merged it into the code, which means you don't need to wait for him/her to release it, you can install direct from github by going into your .node-red folder and running
npm install vtulluru/node-red-contrib-oracledb-mod
Then restarting node-red.

1 Like

Thank you!

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.