Python, Ruby, or Go runtime version mismatch

The installed Python, Ruby, or Go runtime does not satisfy the version constraint declared by the project.

runtime-mismatch high confidence build gojavanodepython

Matched signals

  • requires python
  • requires ruby version
  • unsupported python
  • go.mod requires go
  • go version .* required
  • python.*requires.*version
  • incompatible python version
  • requires Python >=

Python, Ruby, or Go runtime version mismatch

What this failure means

The installed Python, Ruby, or Go runtime does not satisfy the version constraint declared by the project. The build is using a language runtime outside the version range expected by the repository or dependency set.

Symptoms

Faultline looks for one or more of these log fragments:

requires python
requires ruby version
unsupported python
go.mod requires go
go version .* required
python.*requires.*version
incompatible python version
requires Python >=

Diagnosis

The installed Python, Ruby, or Go runtime does not satisfy the version constraint declared by the project. This playbook is the generic fallback for those runtimes after more specific Node.js and Java rules have been considered.

Fix steps

  1. Identify the required version from the repository source of truth: .python-version, .ruby-version, .tool-versions, go.mod, or the CI image tag.
  2. Pin the same version in the workflow or container image that runs the failing job.
  3. Re-run the build locally with the pinned runtime so you can confirm the version mismatch is resolved before re-running CI.
  4. If the failure came from a dependency upgrade, confirm the new minimum runtime requirement before relaxing project constraints or changing the CI image.

Validation

  • Print the runtime version in CI and confirm it matches the version file or toolchain declaration.
  • Re-run the failing workflow step and confirm the original version error is gone.

Why it matters

Runtime requirements drift over time. When the CI runner’s default Python, Ruby, or Go version changes, or when the project begins requiring a newer toolchain, workflows that rely on runner defaults start failing without any change to the failure step itself.

Prevention

  • Pin Python, Ruby, and Go versions explicitly in CI rather than relying on runner defaults.
  • Commit a single source of truth such as .python-version, .ruby-version, .tool-versions, or go.mod.
  • Update local dev tooling and CI images in the same change when runtime requirements move.

Try it locally

python --version
ruby --version
go version
python --version
ruby --version
go version

How Faultline detects it

Use faultline explain runtime-mismatch to see the full playbook.

faultline analyze build.log
faultline explain runtime-mismatch

Generated from playbooks/bundled/log/build/runtime-mismatch.yaml. Do not edit directly.

Try it on your own failed log

$ faultline analyze failed.log
Want this across every CI run? Faultline Teams tracks recurring failures across all your repos and surfaces patterns in a shared dashboard.