windmill-labs/windmill · error
Failed to get `is_github_app` field from git repo resource,
Error message
Failed to get `is_github_app` field from git repo resource, please check that the resource has the correct type (git_repository)
What it means
On enterprise builds, handle_ansible_job requires the git_repository resource to carry a boolean `is_github_app` field. A missing or non-boolean value causes this error, since the worker must know whether to authenticate via GitHub App or plain credentials.
Source
Thrown at backend/windmill-worker/src/ansible_executor.rs:1734
let serde_json::Value::Object(git_repo_resource) = client
.get_resource_value_interpolated::<serde_json::Value>(
&delegated_git_repo.resource,
Some(job.id.to_string()),
)
.await?
else {
return Err(windmill_common::error::Error::BadRequest(
"Git repository resource is not an object".to_string(),
));
};
let secret_url = git_repo_resource.get("url").and_then(|s| s.as_str()).map(|s| s.to_string())
.ok_or(anyhow!("Failed to get url from git repo resource, please check that the resource has the correct type (git_repository)"))?;
#[cfg(feature = "enterprise")]
let is_github_app = git_repo_resource.get("is_github_app").and_then(|s| s.as_bool())
.ok_or(anyhow!("Failed to get `is_github_app` field from git repo resource, please check that the resource has the correct type (git_repository)"))?;
#[cfg(not(feature = "enterprise"))]
let is_github_app = false;
let branch = Some(git_repo_resource.get("branch").and_then(|s| s.as_str()).map(|s| s.to_string())
.ok_or(anyhow!("Failed to get branch from git repo resource, please check that the resource has the correct type (git_repository)"))?).filter(|s| !s.is_empty());
let target_path = DELEGATE_GIT_REPO_TARGET.to_string();
let repo = GitRepo {
url: secret_url,
commit: interpolated_commit.clone(),
branch,
target_path,
};
append_logs(
&job.id,
&job.workspace_id,
format!("\nCloning {}...\n", delegated_git_repo.resource),View on GitHub (pinned to e474e8803c)
Solutions
- Edit the resource and set `"is_github_app": true` or `false` as a boolean.
- Re-save the resource through the current UI so all expected fields are written.
- Recreate the resource with the latest git_repository template.
- If on community edition, confirm the worker is not built with the enterprise feature expecting this field.
Example fix
// resource payload
// before
{ "type": "git_repository", "url": "https://github.com/org/repo.git" }
// after
{ "type": "git_repository", "url": "https://github.com/org/repo.git", "is_github_app": false } Defensive patterns
Strategy: validation
Validate before calling
if (typeof r.is_github_app !== 'boolean') {
throw new Error('git_repository resource must include a boolean is_github_app (enterprise)');
} Type guard
function hasIsGithubApp(v: unknown): v is { is_github_app: boolean; [k: string]: unknown } {
return typeof v === 'object' && v !== null && typeof (v as any).is_github_app === 'boolean';
} Try / catch
try {
const isGithubApp = resource.is_github_app;
} catch (e) {
// re-save resource via UI to backfill missing enterprise fields
} Prevention
- Re-save old resources through the current UI after enterprise upgrades
- Keep community and enterprise instance resources separated
- Validate resource JSON against the git_repository schema before import
When it happens
Trigger: Enterprise worker processes an ansible git-repo dependency whose resource lacks `is_github_app` or has it as a non-boolean (string "true", null).
Common situations: Resources created before the GitHub App feature existed; resources copied from a community-edition instance; hand-written resource JSON omitting the field; UI/version mismatch where the frontend didn't write the field.
Related errors
- Failed to get url from git repo resource, please check that
- Failed to get branch from git repo resource, please check th
- result.substring(__RESULT_ERR_PREFIX.length)
- Invalid migration name '${name}': use only letters, digits,
- Unknown workspace dependencies file format: ${path}. Valid f
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/e526a3d865e94d55.
Report an issue: GitHub.