{"record":{"id":"5a0be12b5eaccf9d","repo":"zeroclaw-labs/zeroclaw","slug":"refusing-ambiguous-jsonl-migration-with-both-an","errorCode":null,"errorMessage":"Refusing ambiguous JSONL migration with both {} and {}","messagePattern":"Refusing ambiguous JSONL migration with both (.+?) and (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-infra/src/session_sqlite.rs","lineNumber":514,"sourceCode":"                .expect(\"candidate suffix checked\")\n                .to_owned();\n            candidates.push((\n                source_name.clone(),\n                key,\n                sessions_dir.join(&source_name),\n                sessions_dir.join(format!(\"{source_name}.importing\")),\n                sessions_dir.join(format!(\"{source_name}.migrated\")),\n                staged,\n            ));\n        }\n        candidates.sort_by(|left, right| right.5.cmp(&left.5).then(left.0.cmp(&right.0)));\n\n        let mut migrated = 0;\n        for (name, key, live_path, staged_path, migrated_path, staged) in candidates {\n            let candidate_may_have_committed_receipt = staged && has_committed_import;\n            if staged {\n                if live_path.exists() {\n                    bail!(\n                        \"Refusing ambiguous JSONL migration with both {} and {}\",\n                        live_path.display(),\n                        staged_path.display()\n                    );\n                }\n            } else {\n                if staged_path.exists() {\n                    bail!(\n                        \"Refusing ambiguous JSONL migration with both {} and {}\",\n                        live_path.display(),\n                        staged_path.display()\n                    );\n                }\n                if migrated_path.exists() {\n                    bail!(\n                        \"Refusing to replace existing migrated JSONL session {}\",\n                        migrated_path.display()\n                    );","sourceCodeStart":496,"sourceCodeEnd":532,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-infra/src/session_sqlite.rs#L496-L532","documentation":"Error \"Refusing ambiguous JSONL migration with both {} and {}\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-infra/src/session_sqlite.rs:514 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove one of the two conflicting JSONL files so migration is unambiguous, then retry."],"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"}