mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-11-01 02:59:47 +08:00
#22617 routed every non-dict/non-instance value in a multiple data parameter's value list through `_decode_dataset_id`, which raises `ParameterValueError("invalid dataset id None")` for anything that isn't an int/digit/16-char id. An unset optional data input connected to a `multiple="true"` data parameter arrives as a null list element (`[None]`), so the job failed at preparation with "invalid dataset id None" instead of running. Before #22617 this path did `query(HistoryDatasetAssociation).get(None)` -> `None`, so the null was tolerated and the tool saw no dataset. Filter `None`/`"None"`/`""` list elements in `DataToolParameter.from_json` (matching the existing `to_python` behaviour) so null is tolerated as "no dataset" while genuinely malformed ids are still rejected. This restores correct execution of workflows that leave an optional data input unset (the UI submits explicit null for such inputs).