JuliusBrussee/caveman · error · Error
cave_conversation_in_use
cave_conversation_in_use
Error message
cave_conversation_in_use
What it means
Concurrency guard in beginConversation: the conversation's state is already busy — another run/stream is currently using this Conversation, and re-entrant turns would corrupt message history and fingerprints.
Source
Thrown at packages/agent/src/runtime.ts:305
export function createConversation(): Conversation {
return new Conversation();
}
type ConversationTransaction = {
readonly owner: Conversation;
readonly sessionId: string;
messages: AgentMessage[];
fingerprint: string | undefined;
cachePrefixDigest: string | undefined;
providerFrozen: ProviderFrozenView | undefined;
originalFrozen: ProviderFrozenView | undefined;
};
function beginConversation(owner: Conversation): ConversationTransaction {
const state = conversationStates.get(owner);
if (!state) throw new Error("cave_conversation_invalid");
if (state.busy) throw new Error("cave_conversation_in_use");
const transaction: ConversationTransaction = {
owner,
sessionId: state.sessionId,
messages: structuredClone(state.messages),
fingerprint: state.fingerprint,
cachePrefixDigest: state.cachePrefixDigest,
providerFrozen: state.providerFrozen === undefined
? undefined
: structuredClone(state.providerFrozen),
originalFrozen: state.originalFrozen === undefined
? undefined
: structuredClone(state.originalFrozen),
};
state.busy = true;
return transaction;
}
function commitConversation(View on GitHub (pinned to 766dce6b13)
Solutions
- Await the in-flight run on this Conversation before starting another
- Use a separate createConversation() per concurrent session
- Serialize access with a queue keyed by conversation
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at packages/agent/src/runtime.ts:305 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@766dce6b13 (2026-08-18).
Data as JSON: /api/errors/91648690736a7c84.
Report an issue: GitHub.