One of my users has encountered a problem with extracting a workflow from a history in our local Galaxy installation (tag latest_2014.08.11, changeset 14342:db520d154716).
The history was created with a version of a local tool which has since been updated, and the extraction page warns that the newer version of the tool will be used for those datasets i.e.:
Dataset was created with tool version "0.0.4", but workflow extraction will use version "0.0.7".
However when the extraction is run it fails immediately: the user sees the "Internal Server Error" page, and in the log I see: ===== Error - <type 'exceptions.KeyError'>: 'platform' URL: https://galaxy.ls.manchester.ac.uk/workflow/build_from_current_history File '/home/galaxy/production/galaxy-dist/lib/galaxy/web/framework/middleware/error.py', line 149 in __call__ app_iter = self.application(environ, sr_checker) File '/home/galaxy/production/galaxy-dist/eggs/Paste-18.104.22.168-py2.6.egg/paste/recursive.py', line 84 in __call__ return self.application(environ, start_response) File '/home/galaxy/production/galaxy-dist/eggs/Paste-22.214.171.124-py2.6.egg/paste/httpexceptions.py', line 633 in __call__ return self.application(environ, start_response) File '/home/galaxy/production/galaxy-dist/lib/galaxy/web/framework/base.py', line 132 in __call__ return self.handle_request( environ, start_response ) File '/home/galaxy/production/galaxy-dist/lib/galaxy/web/framework/base.py', line 190 in handle_request body = method( trans, **kwargs ) File '/home/galaxy/production/galaxy-dist/lib/galaxy/webapps/galaxy/controllers/workflow.py', line 1220 in build_from_current_history workflow_name=workflow_name File '/home/galaxy/production/galaxy-dist/lib/galaxy/workflow/extract.py', line 30 in extract_workflow steps = extract_steps( trans, history=history, job_ids=job_ids, dataset_ids=dataset_ids, dataset_collection_ids=dataset_collection_ids ) File '/home/galaxy/production/galaxy-dist/lib/galaxy/workflow/extract.py', line 104 in extract_steps tool_inputs, associations = step_inputs( trans, job ) File '/home/galaxy/production/galaxy-dist/lib/galaxy/workflow/extract.py', line 271 in step_inputs associations = __cleanup_param_values( tool.inputs, param_values ) File '/home/galaxy/production/galaxy-dist/lib/galaxy/workflow/extract.py', line 330 in __cleanup_param_values cleanup( "", inputs, values ) File '/home/galaxy/production/galaxy-dist/lib/galaxy/workflow/extract.py', line 327 in cleanup group_values = values[input.name] KeyError: 'platform' =====
'platform' is a conditional parameter that was introduced into the tool between the two versions. It looks like when tying to use the newer verison of the new tool, that the new parameter is not getting picked up. Is this expected behaviour?
(Btw I've seen a similar issue i.e. the "KeyError: 'platform' exception when I have the two versions of this tool installed from a local toolshed, and try switching between to the newer one from the older one.)
Any help or suggestions are greatly appreciated.
-- Peter Briggs email@example.com Bioinformatics Core Facility University of Manchester B.1083 Michael Smith Bldg Tel: (0161) 2751482