{"record":{"id":"995217381d6e13ba","repo":"zeroclaw-labs/zeroclaw","slug":"refusing-to-import-receipt-less-jsonl-session-nam","errorCode":null,"errorMessage":"Refusing to import receipt-less JSONL session {name} over existing SQLite session state for {key}","messagePattern":"Refusing to import receipt-less JSONL session (.+?) over existing SQLite session state for (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-infra/src/session_sqlite.rs","lineNumber":623,"sourceCode":"                    }\n                    tx.commit().with_context(|| {\n                        format!(\"Failed to finish JSONL receipt check for {name}\")\n                    })?;\n                    return Ok(());\n                }\n\n                let existing_state: bool = tx\n                    .query_row(\n                        \"SELECT EXISTS(SELECT 1 FROM sessions WHERE session_key = ?1) \\\n                         OR EXISTS(SELECT 1 FROM session_metadata WHERE session_key = ?1)\",\n                        params![key],\n                        |row| row.get(0),\n                    )\n                    .with_context(|| {\n                        format!(\"Failed to inspect existing SQLite session state for {key}\")\n                    })?;\n                if existing_state {\n                    bail!(\n                        \"Refusing to import receipt-less JSONL session {name} over existing SQLite session state for {key}\"\n                    );\n                }\n\n                let file = std::fs::File::open(&staged_path)\n                    .with_context(|| format!(\"Failed to open staged JSONL session {name}\"))?;\n                let now = Utc::now().to_rfc3339();\n                let mut inserted = 0_i64;\n                let mut has_non_whitespace_source = false;\n                {\n                    let mut insert = tx\n                        .prepare(\n                            \"INSERT INTO sessions (session_key, role, content, created_at) \\\n                             VALUES (?1, ?2, ?3, ?4)\",\n                        )\n                        .with_context(|| format!(\"Failed to prepare JSONL import for {name}\"))?;\n                    for line in io::BufReader::new(file).split(b'\\n') {\n                        let line = line.with_context(|| {","sourceCodeStart":605,"sourceCodeEnd":641,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-infra/src/session_sqlite.rs#L605-L641","documentation":"Error \"Refusing to import receipt-less JSONL session {name} over existing SQLite session state for {key}\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-infra/src/session_sqlite.rs:623 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide the import receipt for the JSONL session, or remove the existing SQLite session state before importing."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}