I am having a critical issue and need to know if this is just a 5.5.x thing or if this affects the whole 5.x release.
I am attempting to use paramiko in a Python Script node under 5.5.3. The conda environment is configured with Python 3.11 and knime-python-* v.5.5.0. This is running on osx-arm64.
Executing code to create this object:
key_filehandle = open("path_to_ecdsa_key","r")
priv_key = paramiko.ECDSAKey.from_private_key(key_filehandle)
which creates an object priv_key of type ECDSAKey, and causes the node to fail with the following:
py4j.Py4JException: An exception was raised by the Python Proxy. Return Message: Traceback (most recent call last):
File “/Applications/KNIME 5.5.3.app/Contents/Eclipse/plugins/org.knime.python3.scripting.nodes_5.5.1.v202507241235/src/main/python/_knime_scripting_launcher.py”, line 282, in object_to_string
string = str(obj)
TypeError: _str_ returned non-string (type bytes)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/Applications/KNIME 5.5.3.app/Contents/Eclipse/plugins/org.knime.python3.scripting.nodes_5.5.1.v202507241235/src/main/python/_knime_scripting_launcher.py”, line 192, in execute
“data”: self.\_getVariablesInWorkspace(),
File “/Applications/KNIME 5.5.3.app/Contents/Eclipse/plugins/org.knime.python3.scripting.nodes_5.5.1.v202507241235/src/main/python/_knime_scripting_launcher.py”, line 307, in _getVariablesInWorkspace
var_value = object_to_string(value)
File “/Applications/KNIME 5.5.3.app/Contents/Eclipse/plugins/org.knime.python3.scripting.nodes_5.5.1.v202507241235/src/main/python/_knime_scripting_launcher.py”, line 289, in object_to_string
raise KnimeUserError(
knime.scripting._backend.KnimeUserError: It was not possible to represent ECDSAKey as a string for the workspace.
The same code, using the same Python version and the same paramiko version runs just fine in the Python Script node under 4.7.8 and the variable pane shows the variable priv_key of type ECDSAKey.
Why is 5.5.3 attempting to coerce ECDSAKey to type string unprompted? Indeed, outside of KNIME if you attempt to execute str(paramiko.ECDSAKey.from_private_key(key_file)) it will throw
TypeError: _str_ returned non-string (type bytes)
What gives? This also causes the node to fail when running on a KNIME server executor.
