{"record":{"id":"b011ae753a3a1be3","repo":"windmill-labs/windmill","slug":"git-is-not-supported","errorCode":null,"errorMessage":"GIT is not supported","messagePattern":"GIT is not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/windmill-worker/src/ruby_executor.rs","lineNumber":668,"sourceCode":"                    \"gem.cmd\"\n                } else {\n                    GEM_PATH.as_str()\n                })\n            };\n            cmd.env_clear()\n                .current_dir(&job_dir)\n                .envs(vec![\n                    (\"PATH\".to_owned(), PATH_ENV.clone()),\n                    // Make sure there is nothing written to actual home\n                    // This way we keep everything clean, organized and maintable\n                    (\"HOME\".to_owned(), RUBY_CACHE_DIR.to_owned()),\n                ])\n                .envs(RUBY_PROXY_ENVS.clone());\n\n            // Figure out source\n            let source = {\n                let source = match dependency.custom_payload.source {\n                    FinalSource::GIT { .. } => return Err(anyhow!(\"GIT is not supported\").into()),\n                    FinalSource::GEM { remote } => remote,\n                }\n                .trim()\n                .to_owned();\n\n                let src_url = Url::parse(&source)?;\n                repos\n                    .iter()\n                    .find(|inst_url| {\n                        inst_url.domain().is_some()\n                            && (inst_url.domain(), inst_url.path())\n                                == (src_url.domain(), src_url.path())\n                    })\n                    .map(Url::to_string)\n                    .unwrap_or(source)\n            };\n\n            cmd.args(&[","sourceCodeStart":650,"sourceCodeEnd":686,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/backend/windmill-worker/src/ruby_executor.rs#L650-L686","documentation":"Raised by the Ruby gem installer when a gemfile block declares a `gem` with a `:git` option. Windmill's inline Ruby dependency management installs gems only from registered gem sources; git-sourced gems are rejected before installation since there is no git fetch/lock support in the worker's cache.","triggerScenarios":"Thrown at backend/windmill-worker/src/ruby_executor.rs:668 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Replace the git-sourced gem with a published version from a gem source","Ask an administrator to vendor or publish the gem on a supported source","Fork the gem to a registry if it has no published release"],"exampleFix":null,"handlingStrategy":"validation","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-08T15:18:49.778Z"}