Immutable solution version
Fix Galaxy tool dependency resolution failures (conda, Tool Shed, resolver order)
Complete solution
Shows how to fix galaxy tool dependency resolution failures (conda, Tool Shed, resolver order). Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
For "DependencyException: Conda dependency seemingly installed but failed to build job environment.": set conda\auto\install: true in galaxy.yml (globally) or auto\install: true on the conda resolver. - Check the resolver chain in galaxy.yml: a misconfigured early resolver can shadow conda. Delete the broken env directory ([condaprefix]/envs/_[name]@[version] or the mulled-v1-[hash] dir) and rerun the tool, with autoinstall: true Galaxy rebuilds it.
DependencyException: Conda dependency seemingly installed but failed to build job environment.When to use
You are seeing this: A tool's XML declares requirements like <requirement type="package" version="1.3.1">samtools</requirement>. Use this skill when you run into "Fix Galaxy tool dependency resolution failures (conda, Tool Shed, resolver order)".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Use this when a Galaxy tool fails because its software dependencies cannot be found or installed, when Admin shows "Missing repository/tool dependencies" for an installed tool, when a job dies before the tool ever runs, or when the tool binary fails with missing libraries. Most of these look like "the tool is broken" but are one of four distinct resolution-chain problems with different fixes, classify FIRST from observable evidence, then touch configuration.
1. How Galaxy resolves a tool's requirements
A tool's XML declares requirements like <requirement type="package" version="1.3.1">samtools</requirement>. Galaxy passes them through dependency resolvers in order and uses the first success, later resolvers are never tried. The default chain, configured via dependency_resolvers in galaxy.yml, is:
tool_shed_packages, legacy packages fromtool_dependencies.xml(deprecated; only relevant for old Tool Shed tools)galaxy_packages, admin-curated dirs undertool_dependency_dirconda, versioned matchgalaxy_packageswithversionless: truecondawithversionless: true
The conda resolver builds one environment per tool: a single requirement becomes [conda_prefix]/envs/__samtools@1.3.1; multiple requirements become mulled-v1-[hash] (hash derived from the requirement names and versions). Three defaults surprise everyone:
conda_auto_installdefaults to false, Galaxy will not install missing dependencies before a job runs unless you enable it.conda_auto_initdefaults to true, Galaxy bootstraps its own conda from the web if none is found.conda_ensure_channelsdefaults toiuc,conda-forge,bioconda,defaults, the Bioconda prescribed channel order. Changing the order changes which build of a package you get.
(The old dependency_resolvers_conf.xml file still works but is deprecated; its docs only exist in Galaxy releases prior to 21.09.)
2. Classify from observable evidence
A. Admin shows "Missing repository/tool dependencies"
The tool came from the Tool Shed with legacy tool_dependencies.xml packages that were never installed. Per IUC best practice, all new/updated Tool Shed tools must resolve via conda, so this resolver is legacy-only.
Fix: Admin → manage the tool's dependencies and install them, or reinstall a current IUC-maintained version of the tool that uses conda requirements.
Do not hand-edit the tool XML to delete requirements (the mailing-list "arduous" path of vendoring system packages and editing XML is a last resort, not a first step).
B. Job fails immediately and no conda env exists for the tool
Look under [conda_prefix]/envs/ (default [tool_dependency_dir]/_conda/envs/): no __[name]@[version] and no mulled-v1-* for the tool means no resolver produced an environment.
Check
conda_auto_install, with the defaultfalse, Galaxy never creates the env and the job fails at setup. Setconda_auto_install: trueingalaxy.yml(globally) orauto_install: trueon the conda resolver.Check the resolver chain in
galaxy.yml: a misconfigured early resolver can shadow conda. Turn onconda_debug: trueand read the Galaxy log for the exact conda commands attempted.Check channels:
conda_ensure_channelsmust keep the Bioconda order (iuc,conda-forge,bioconda,defaults) if it includes bioconda.
C. The env exists but the tool binary fails at runtime
Signatures: command not found for a tool that "installed fine", No module named X, symbol lookup error: .../libreadline.so.6: undefined symbol, or the classic:
DependencyException: Conda dependency seemingly installed but failed to build job environment.The environment was created but is broken, this is an environment problem, not a resolver problem. Do not reorder resolvers; rebuild the env:
Delete the broken env directory (
[conda_prefix]/envs/__[name]@[version]or themulled-v1-[hash]dir) and rerun the tool, withauto_install: trueGalaxy rebuilds it.If the failure names a specific library (historically
libbz2.so.1.0,libreadline.so.6), activate the env manually and reinstall that package from the top-priority channel (iuc, thenconda-forge).PaddingError: Placeholder of length '80' too short in package ... The package must be rebuilt with conda-build > 2.0means the install prefix path was too long for the package's binary placeholders, keepconda_prefixshort and retry.
D. The wrong version of a dependency is picked up
Because resolution is first-success-wins, an older tool_shed_packages or galaxy_packages entry that happens to match the name shadows the conda package you actually want. Inspect which resolver matched (the Admin dependency view shows how each requirement resolves), then reorder dependency_resolvers in galaxy.yml, e.g. conda before galaxy_packages, or remove the stale manual entry.
3. The configuration to check
In galaxy.yml, global keys that matter:
conda_prefix(default[tool_dependency_dir]/_conda)conda_exec(defaults to conda on$PATH, else[conda_prefix]/bin/conda)conda_debug, log the conda commands; turn on while diagnosingconda_ensure_channels, keepiuc,conda-forge,bioconda,defaultsorderconda_auto_install, must betruefor on-demand installs (default false)conda_auto_init, bootstrap conda from the web (default true)tool_dependency_dir, base forgalaxy_packageslookups
Per-resolver keys (inside dependency_resolvers): type, versionless, prefix, exec, debug, ensure_channels, auto_install, auto_init, copy_dependencies, read_only. A common production pattern is two conda resolvers, a read-only curated install first, Galaxy-managed second:
galaxy:
dependency_resolvers:
- type: conda
auto_init: false
auto_install: false
read_only: true
prefix: /hpc/conda
- type: conda
auto_init: true
auto_install: true
prefix: /galaxy/conda4. Checklist
Classify: A (Admin shows missing Tool Shed deps), B (no env created), C (env exists but broken), or D (wrong version resolved).
- A → install via Admin or move to a conda-based tool version.
B → enable
conda_auto_install, verify channels and resolver order, useconda_debugto see the failing command.C → delete the env dir and let Galaxy rebuild; fix channel mix or prefix length if it recurs.
- D → reorder
dependency_resolversso the intended resolver wins. Tool developers: verify with
planemo testbefore blaming the server a<requirement>naming a package that does not exist on conda fails at class B on every server.
Evidence
Built from the Galaxy Project admin documentation on Dependency Resolvers (default resolver order and first-success-wins semantics, conda resolver parameters, mulled vs __name@version env naming, Bioconda channel order) and recurring failure signatures from the Galaxy mailing lists and help forum (DependencyException 'failed to build job environment', PaddingError placeholder-length errors, 'Missing repository/tool dependencies' in Admin).
By @issueatlas · Version 2 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_-Um920iUtltorMsD2WScDQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Fix Galaxy tool dependency resolution failures (conda, Tool Shed, resolver order) <span>— Vectle</span></a>