windmill-labs/windmill · error
Cannot determine version and package name for: {}
Error message
Cannot determine version and package name for: {} What it means
Raised by the Ruby gem installer while parsing `gem dependency` lock output: it hit a lockfile line it could not decompose into a package name plus version (e.g. an unexpected transitive-dependency listing). The installer only proceeds on lines it can map to a concrete gem version, so unrecognizable output aborts the install rather than skipping a dependency.
Source
Thrown at backend/windmill-worker/src/ruby_executor.rs:562
// actionmailbox (8.1.0.alpha)
// actionpack (= 8.1.0.alpha)
// activejob (= 8.1.0.alpha)
// activerecord (= 8.1.0.alpha)
// activestorage (= 8.1.0.alpha)
// activesupport (= 8.1.0.alpha)
// mail (>= 2.8.0)
// actionmailer (8.1.0.alpha)
// ...
//
// In this snippet we only want actioncable, actionmailbox and actionmailer
//
// If it got the hit than that's not it, just skip
continue 'lock_lines;
}
let buf = tl.replace(['(', ')'], "");
let &[pkg, version, ..] = buf.split_whitespace().collect_vec().as_slice() else {
return Err(anyhow!("Cannot determine version and package name for: {}", tl).into());
};
// Strip platform from version. E.g:
// 1.18.9-x86_64-darwin -> 1.18.9
let version = version.split('-').next().unwrap_or(version);
let custom_payload = CustomPayload {
version: version.into(),
pkg: pkg.into(),
source: match last_source.clone() {
CurrentSource::GIT { remote, revision } => FinalSource::GIT {
remote: remote.unwrap_or_default(),
revision: revision.unwrap_or_default(),
},
CurrentSource::GEM { remote } => {
FinalSource::GEM { remote: remote.unwrap_or_default() }
},
CurrentSource::INIT => return Err(Error::InternalErr("BUG on installation stage: detected initial enum variant at the stage it was not supposed to be at. Please report this issue.".to_owned())),View on GitHub (pinned to e474e8803c)
Solutions
- Pin explicit versions for the gems declared in the gemfile block
- Avoid pre-release gems whose dependency output confuses the parser
- Narrow the dependency set to isolate which gem produces the unparseable line
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at backend/windmill-worker/src/ruby_executor.rs:562 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/efb01a8b894db47f.
Report an issue: GitHub.