diff --git a/lib/galaxy/datatypes/data.py b/lib/galaxy/datatypes/data.py
index f0ae6338602..0e93f8d76f7 100644
--- a/lib/galaxy/datatypes/data.py
+++ b/lib/galaxy/datatypes/data.py
@@ -133,6 +133,8 @@ def get_params_and_input_name(
params[value.name] = deps[value.name]
elif value.type == "data":
input_name = key
+ elif value.optional:
+ params[value.name] = None
# add potentially required/common internal tool parameters e.g. '__job_resource'
if target_context:
diff --git a/test/functional/tools/implicit_conversion_optional_param.xml b/test/functional/tools/implicit_conversion_optional_param.xml
new file mode 100644
index 00000000000..81944128b25
--- /dev/null
+++ b/test/functional/tools/implicit_conversion_optional_param.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/functional/tools/sample_tool_conf.xml b/test/functional/tools/sample_tool_conf.xml
index fe3cfb0294c..5c68594e815 100644
--- a/test/functional/tools/sample_tool_conf.xml
+++ b/test/functional/tools/sample_tool_conf.xml
@@ -153,6 +153,7 @@
+