Skip to content
runline
Try the demo

All playbooks

Dry Lab / Computational: unpinned dependency error

A package resolved to a version incompatible with the pipeline.

  1. Ranked causes

    1. requirements.txt / environment.yml lists a package without a version pinError only reproduces on a fresh environment build, not the original dev machine.
    2. Transitive dependency of a pinned package updated and broke an APIDirect dependencies are pinned but the error is inside a sub-dependency.
    3. Cached environment tarball / lockfile from the wrong project (material mix-up)Lockfile path or container tag does not match this protocol's recorded hash.
    4. Conda/pip channel resolved a different build than the one used to develop the protocolSame version number, different behavior — check the build/channel hash.
  2. Recovery steps

    1. Pin every direct dependency to an exact version (==x.y.z) in the environment specEliminates the whole class of drift-on-rebuild failures.
    2. Generate and commit a full lockfile (pip freeze / conda-lock) alongside the top-level specPins transitive dependencies too, not just direct ones.
    3. Re-build the environment from the lockfile in a clean container and re-runConfirms the pin actually reproduces the original working state.
    4. Record the exact container/conda build hash in the run's execution logMakes the next failure immediately diagnosable without re-deriving it.
  3. Controls first

    • Did a control rebuild from the recorded lockfile / container hash succeed?If no: Lockfile or channel resolution issue — treat the environment spec as the material under test.
    • Does the error reproduce only on a freshly built environment, not the original machine?If yes: Confirmed version drift — pin dependencies and rebuild from a lockfile.

Diagnose your run

Opens Diagnostics capture with this first-party playbook behind it. Sign in if the workspace asks.

Accessibility statement