JuliusBrussee/caveman · error · Error
caveman build: runner timeout must be a positive integer
Error message
caveman build: runner timeout must be a positive integer
What it means
Error "caveman build: runner timeout must be a positive integer" thrown in JuliusBrussee/caveman.
Source
Thrown at packages/agent/src/build.ts:438
...lockWithoutBuild,
build_sha256: buildSha256,
};
return {
...base,
status: "locked",
best_observed_plan_id: selected.candidate.plan.plan_id,
baseline_catalog_cost_usd_per_task: baselineCompleted.costPerTask,
selected_catalog_cost_usd_per_task: selected.costPerTask,
lock,
};
}
async function withDeadline<T>(
invoke: (signal: AbortSignal) => Promise<T>,
timeoutMs: number,
): Promise<T> {
if (!Number.isSafeInteger(timeoutMs) || timeoutMs <= 0) {
throw new Error("caveman build: runner timeout must be a positive integer");
}
const controller = new AbortController();
let timer: NodeJS.Timeout | undefined;
const deadline = new Promise<never>((_resolve, reject) => {
timer = setTimeout(() => {
const error = new Error("cave_build_runner_timeout");
controller.abort(error);
reject(error);
}, timeoutMs);
});
try {
// Abort asks cooperative runners to stop; the independent race prevents an
// adapter that ignores AbortSignal from pinning the compiler forever. A late
// runner can never mint a lock or known actual cost after this branch returns.
return await Promise.race([Promise.resolve().then(() => invoke(controller.signal)), deadline]);
} finally {
if (timer !== undefined) clearTimeout(timer);
}View on GitHub (pinned to 27d5a3981a)
Solutions
- Set the runner timeout to a positive integer (milliseconds).
When it happens
Trigger: Thrown at packages/agent/src/build.ts:438 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/66e2d3db659eb028.
Report an issue: GitHub.