{"record":{"id":"a2bad5059838c0fc","repo":"JuliusBrussee/caveman","slug":"cave-conversation-invalid","errorCode":"cave_conversation_invalid","errorMessage":"cave_conversation_invalid","messagePattern":"cave_conversation_invalid","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/agent/src/runtime.ts","lineNumber":304,"sourceCode":"export type ConversationState = Conversation;\n\nexport function createConversation(): Conversation {\n  return new Conversation();\n}\n\ntype ConversationTransaction = {\n  readonly owner: Conversation;\n  readonly sessionId: string;\n  messages: AgentMessage[];\n  fingerprint: string | undefined;\n  cachePrefixDigest: string | undefined;\n  providerFrozen: ProviderFrozenView | undefined;\n  originalFrozen: ProviderFrozenView | undefined;\n};\n\nfunction beginConversation(owner: Conversation): ConversationTransaction {\n  const state = conversationStates.get(owner);\n  if (!state) throw new Error(\"cave_conversation_invalid\");\n  if (state.busy) throw new Error(\"cave_conversation_in_use\");\n  const transaction: ConversationTransaction = {\n    owner,\n    sessionId: state.sessionId,\n    messages: structuredClone(state.messages),\n    fingerprint: state.fingerprint,\n    cachePrefixDigest: state.cachePrefixDigest,\n    providerFrozen: state.providerFrozen === undefined\n      ? undefined\n      : structuredClone(state.providerFrozen),\n    originalFrozen: state.originalFrozen === undefined\n      ? undefined\n      : structuredClone(state.originalFrozen),\n  };\n  state.busy = true;\n  return transaction;\n}\n","sourceCodeStart":286,"sourceCodeEnd":322,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/766dce6b1394ebb56a3090748d5a0240a5aefb36/packages/agent/src/runtime.ts#L286-L322","documentation":"Internal invariant guard in beginConversation: no session state is registered for the Conversation owner (it was never created through the runtime's own path or was already torn down). This is a runtime bookkeeping failure, not a user-input validation error.","triggerScenarios":"Thrown at packages/agent/src/runtime.ts:304 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Create conversations via createConversation() only","Avoid copying/spreading Conversation instances","If serializing sessions, store the sessionId and re-open a fresh Conversation"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"766dce6b1394ebb56a3090748d5a0240a5aefb36","analyzedAt":"2026-08-18T03:14:35.516Z","contentChangedAt":"2026-08-18T03:14:35.516Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}