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
- Identify the required version from the repository source of truth:
.python-version,.ruby-version,.tool-versions,go.mod, or the CI image tag. - Pin the same version in the workflow or container image that runs the failing job.
- Re-run the build locally with the pinned runtime so you can confirm the version mismatch is resolved before re-running CI.
- 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, orgo.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.