JuliusBrussee/caveman · error
cave_tool_schema_invalid:${definition.name}
Error message
cave_tool_schema_invalid:${definition.name} What it means
Error "cave_tool_schema_invalid:${definition.name}" thrown in JuliusBrussee/caveman.
Source
Thrown at packages/agent/src/runtime.ts:3821
typeof parsed.description !== "string" || !isRecord(parsed.input)) {
throw new Error(`tool_schema_transform_invalid:${segmentID}`);
}
return output;
}
function providerToolDefinition(
definition: ToolDefinition,
lowered: LoweredContext,
appliedPlan: AppliedPlan,
): { description: string; input: TSchema } {
const segment = lowered.ir.segments.find((item) => item.id === `tool.${definition.name}`);
if (!segment) throw new Error(`cave_context_segment_missing:tool.${definition.name}`);
const body = appliedPlan.bodies.get(segment.bodyHandle);
if (!body) throw new Error(`cave_context_body_missing:tool.${definition.name}`);
const parsed = JSON.parse(new TextDecoder().decode(body)) as unknown;
if (!isRecord(parsed) || parsed.name !== definition.name ||
typeof parsed.description !== "string" || !isRecord(parsed.input)) {
throw new Error(`cave_tool_schema_invalid:${definition.name}`);
}
return { description: parsed.description, input: parsed.input as TSchema };
}
function admitSubagent(state: InvocationState): () => void {
const ledger = state.ledger;
if (ledger.maxInvocations !== undefined && ledger.admitted >= ledger.maxInvocations) {
ledger.invocationRejections++;
throw new Error("cave_subagent_invocation_limit");
}
if (ledger.maxConcurrent !== undefined && ledger.active >= ledger.maxConcurrent) {
ledger.concurrencyRejections++;
throw new Error("cave_subagent_concurrency_limit");
}
ledger.admitted++;
ledger.active++;
ledger.peakActive = Math.max(ledger.peakActive, ledger.active);
let released = false;View on GitHub (pinned to 27d5a3981a)
Solutions
- The named tool's schema is invalid; correct the JSON Schema emitted for the tool.
When it happens
Trigger: Thrown at packages/agent/src/runtime.ts:3821 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/97d1fb5dff9d8bdf.
Report an issue: GitHub.