Problem with the simple input node

Hi all,

I wonder why an input socket with the Float type can’t accept an outgoing value from the Separate XYZ node, but everything is fine for an outgoing value from the Value node. See picture below.

Thank you for your answer.

import bpy

from bpy.types import Node
from bpy.utils import register_class, unregister_class

import nodeitems_utils
from nodeitems_utils import NodeCategory, NodeItem

class CustomNode(Node):
    bl_idname = "CustomNodeFloat"
    bl_label = "Custom Node Float"

    def init(self, context):
        self.inputs.new("NodeSocketFloat", "Input")
        self.inputs["Input"].default_value = 1
        
    def draw_buttons(self, context, layout):
        layout.label(text="Input = %.2f" % self.inputs["Input"].links[0].from_socket.default_value)

    def draw_label(self):
        return "Node"

class CustomNodeCategory(NodeCategory):
    @classmethod
    def poll(cls, context):
        return context.space_data.tree_type == 'ShaderNodeTree'

identifier = 'CUSTOM_NODES'
node_categories = [CustomNodeCategory(identifier, "Custom Nodes", items=[NodeItem("CustomNodeFloat")])]

def register():
    register_class(CustomNode)
    if identifier in nodeitems_utils._node_categories:
        nodeitems_utils.unregister_node_categories(identifier)
    nodeitems_utils.register_node_categories(identifier, node_categories)

def unregister():
    nodeitems_utils.unregister_node_categories(identifier)
    unregister_class(CustomNode)

if __name__ == "__main__":
    register()

CustomNodeFloat.blend (621.6 KB)