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

  1. 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


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/66e2d3db659eb028. Report an issue: GitHub.