I recently ran into a problem where attempting to run a workflow
resulted in an uninformative error and a traceback in the logs, that I
put into Google. This led me to the message below from 2012. As far as
I can see it got no reply at the time and I have hit the same issue.
I modified database/compiled_templates/workflow/run.mako.py and this
resulted in a much more useful error report appearing in the browser.
Obviously this is a generated file, so attached is a patch for
templates/webapps/galaxy/workflow/run.mako that I propose you add to
Galaxy. As you'll see it just adds a single "try" block and then
ignores the exception, which I would say in this case is not actually a
bad thing to do even if it is not the ideal fix. Should be fairly
explanatory from the patch.
Way way back in Jun 2012, Paul-Michael.Agapow at hpa.org.uk wrote:
> Looking for pointers on what might be causing this problem:
> A user had a moderately complicated workflow that when run under certain
> parameter values results in a traceback that ends:
> Module workflow_run_mako:232 in render_body
> >> for ic in oc.input_step.module.get_data_inputs():
> AttributeError: 'WorkflowStep' object has no attribute 'module'
> After some puzzling, I realized one of the parameters was outside the allowed
> range (a max on an integer param) and that Galaxy was trying to render
> "run.mako" flagging up the error but erroring out. Why Galaxy tries to call
> this non-existent member is unclear to me. Any insight or places I should
> start exploring?
> Galaxy version: various (started with an 6-month old one, upgraded to latest
> production to see if it would fix error, it didn't)
> Hosting OS: CentOS 6
> Paul Agapow (paul-michael.agapow at hpa.org.uk)
> Bioinformatics, Health Protection Agency (UK)
Tim Booth <tbo...@ceh.ac.uk>
NERC Environmental Bioinformatics Centre
Centre for Ecology and Hydrology
Maclean Bldg, Benson Lane
+44 1491 69 2705
# This patch addresses
@@ -582,9 +582,12 @@
# Filter possible inputs to data types that are valid for
type_filter = 
for oc in step.output_connections:
for ic in oc.input_step.module.get_data_inputs():
if 'extensions' in ic and ic['name'] == oc.input_name:
type_filter += ic['extensions']
+ except AttributeError:
if not type_filter:
type_filter = ['data']
Please keep all replies on the list by using "reply all"
in your mail client. To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
To search Galaxy mailing lists use the unified search at: