ID 351117 - A user knob of type String_Knob is converted to knob type EvalString_Knob on serialisation

Follow

Problem summary
A user knob of type String_Knob is converted to knob type EvalString_Knob on serialisation.

Customer reported version
nuke.11.1v1

Customer reported platform
centos7

Steps to reproduce

1) Create a Write node.

2) Open the Script Editor.

3) Select the Writer node, then enter and run the following Python commands in the Script Editor. This will add a user knob of type nuke.String_Knob to the Write node, and it will print out the knob type in the Script Editor:
node = nuke.selectedNode()
node.addKnob(nuke.String_Knob('test', 'Test', 'foo bar'))

4) Now, enter and run the following Python commands in the Script Editor. This will display the current knob type of the newly created user knob:
node = nuke.selectedNode()
print type(node['test'])

The result is: <type String_Knob>

5) Copy and paste the Write node to create a duplicate Write node. If you view the properties of the duplicate Write node you will see that the user knob is still present. However, running the Python commands in step 4 with the duplicate Write node selected will show that the user String_Knob has converted to a EvalString_Knob.

The result is: <type EvalString_Knob>

6) This bug is also encountered when saving, closing and reopening a Nuke script. User knobs of the type String_Knob will be converted to the type EvalString_Knob.

Workaround
Unknown. If known please add steps to workaround or avoid the problem

Reproduced by support
This bug has been reproduced in:
Windows10
11.1v3
11.1v1
11.0v4
10.5v7
10.0v6
9.0v9

macOS 10.13
11.1v3
9.0v9

CentOS 7
11.1v3
9.0v9

Earliest version tested
9.0v9 - This issue appears to be in all versions of the product

Expected behaviour
The user knob should retain the initial knob type (String_Knob) on serialisation.

Actual behaviour
User knob type String_Knob converts to Eval_StringKnob on serialisation (duplication and reloading).
 

    We're sorry to hear that

    Please tell us why