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

  1. Pin explicit versions for the gems declared in the gemfile block
  2. Avoid pre-release gems whose dependency output confuses the parser
  3. 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.