Yeachan-Heo/oh-my-codex · error · Error
worktree_not_provisioned:${workerName}
Error message
worktree_not_provisioned:${workerName} What it means
ensureWorktree returned a disabled workspace (or a fault was injected) while provisioning a worktree for a new worker during scaleUp. The planned worktree could not actually be provisioned.
Source
Thrown at src/team/scaling.ts:1131
cwd: leaderCwd,
scope: 'team',
mode: effectiveWorktreeMode,
teamName: sanitized,
workerName,
});
if (!worktreePlan.enabled) throw new Error(`worktree_not_planned:${workerName}`);
const worktreePathExistedBeforeEnsure = existsSync(worktreePlan.worktreePath);
const branchExistedBeforeEnsure = worktreePlan.branchName
? spawnSync('git', ['show-ref', '--verify', '--quiet', `refs/heads/${worktreePlan.branchName}`], {
cwd: worktreePlan.repoRoot,
encoding: 'utf-8',
windowsHide: true,
}).status === 0
: false;
try {
const ensuredWorkspace = ensureWorktree(worktreePlan);
throwIfScaleUpFailureInjected(env, 'worktree-ensure-post-create');
if (!ensuredWorkspace.enabled) throw new Error(`worktree_not_provisioned:${workerName}`);
workerWorkspace = ensuredWorkspace;
} catch (error) {
const recoveredWorkspace = recoverCreatedWorktreeAfterEnsureFailure(
worktreePlan,
worktreePathExistedBeforeEnsure,
branchExistedBeforeEnsure,
);
if (recoveredWorkspace) {
workerWorkspace = recoveredWorkspace;
provisionedWorktrees.push(recoveredWorkspace);
}
throw error;
}
if (!workerWorkspace) throw new Error(`worktree_not_provisioned:${workerName}`);
provisionedWorktrees.push(workerWorkspace);
throwIfScaleUpFailureInjected(env, 'worktree-post-create');
workerCwd = workerWorkspace.worktreePath;
}View on GitHub (pinned to 3ad79a8a6f)
Solutions
- Run 'git worktree list' and clean up stale/corrupt worktrees under .omx/team/<team>/worktrees
- Ensure git is on PATH and the repo is healthy (git fsck)
- Retry scaleUp after freeing disk space / removing conflicting branches or worktree dirs
Defensive patterns
Strategy: fallback
Validate before calling
import { spawnSync } from 'node:child_process';
function worktreesHealthy(repoRoot: string): boolean {
return spawnSync('git', ['worktree', 'list'], { cwd: repoRoot }).status === 0;
} Try / catch
catch (e) {
if ((e as Error).message.startsWith('worktree_not_provisioned')) {
// fall back to scale-up without worktrees, or clean stale worktrees and retry
return scaleUp(team, count, { ...opts, worktreeMode: 'none' });
}
throw e;
} Prevention
- Periodically prune stale worktrees under .omx/team/*/worktrees
- Keep disk space available on the volume holding the repo
When it happens
Trigger: Calling scaleUp; planWorktree succeeded but ensureWorktree returned {enabled:false} (e.g. git worktree add failed silently or config disabled) or the 'worktree-ensure-post-create' failure injection fired.
Common situations: git worktree add failing due to name collision, disk full, or corrupt .git/worktrees metadata; environment issue where git is unavailable on PATH.
Related errors
- worktree_not_planned:${workerName}
- leader_workspace_dirty_for_worktrees
- (result.stderr || '').trim() || `git ${args.join(' ')} faile
- (result.stderr || '').trim() || `git status failed for ${wor
- autoresearch_reset_requires_clean_worktree
AI-assisted analysis of Yeachan-Heo/oh-my-codex@3ad79a8a6f (2026-08-27).
Data as JSON: /api/errors/b41ecaf7bbf3ab78.
Report an issue: GitHub.