{"record":{"id":"efb01a8b894db47f","repo":"windmill-labs/windmill","slug":"cannot-determine-version-and-package-name-for","errorCode":null,"errorMessage":"Cannot determine version and package name for: {}","messagePattern":"Cannot determine version and package name for: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/windmill-worker/src/ruby_executor.rs","lineNumber":562,"sourceCode":"            //    actionmailbox (8.1.0.alpha)\n            //      actionpack (= 8.1.0.alpha)\n            //      activejob (= 8.1.0.alpha)\n            //      activerecord (= 8.1.0.alpha)\n            //      activestorage (= 8.1.0.alpha)\n            //      activesupport (= 8.1.0.alpha)\n            //      mail (>= 2.8.0)\n            //    actionmailer (8.1.0.alpha)\n            //   ...\n            //\n            // In this snippet we only want actioncable, actionmailbox and actionmailer\n            //\n            // If it got the hit than that's not it, just skip\n            continue 'lock_lines;\n        }\n\n        let buf = tl.replace(['(', ')'], \"\");\n        let &[pkg, version, ..] = buf.split_whitespace().collect_vec().as_slice() else {\n            return Err(anyhow!(\"Cannot determine version and package name for: {}\", tl).into());\n        };\n\n        // Strip platform from version. E.g:\n        // 1.18.9-x86_64-darwin -> 1.18.9\n        let version = version.split('-').next().unwrap_or(version);\n\n        let custom_payload = CustomPayload {\n            version: version.into(),\n            pkg: pkg.into(),\n            source: match last_source.clone() {\n                CurrentSource::GIT { remote, revision } => FinalSource::GIT {\n                    remote: remote.unwrap_or_default(),\n                    revision: revision.unwrap_or_default(),\n                },\n                CurrentSource::GEM { remote } => {\n                    FinalSource::GEM { remote: remote.unwrap_or_default() }\n                },\n                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())),","sourceCodeStart":544,"sourceCodeEnd":580,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/backend/windmill-worker/src/ruby_executor.rs#L544-L580","documentation":"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.","triggerScenarios":"Thrown at backend/windmill-worker/src/ruby_executor.rs:562 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}