{"record":{"id":"ddd3b4a8b6419091","repo":"MemPalace/mempalace","slug":"sidecar-has-blob-typed-seq-id-for-segment-id-re","errorCode":null,"errorMessage":"Sidecar has BLOB-typed seq_id for {segment_id}; refusing to use it. Pass a sidecar that was already migrated to INTEGER rows.","messagePattern":"Sidecar has BLOB-typed seq_id for (.+?); refusing to use it\\. Pass a sidecar that was already migrated to INTEGER rows\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mempalace/repair.py","lineNumber":2243,"sourceCode":"        return int.from_bytes(val, \"big\")\n    return int(val)\n\n\ndef _read_sidecar_seq_ids(sidecar_path: str) -> dict[str, int]:\n    \"\"\"Load ``{segment_id: seq_id}`` from a sidecar DB's ``max_seq_id`` table.\n\n    Rejects sidecar files whose ``max_seq_id.seq_id`` is itself BLOB-typed\n    — a sidecar that old predates chromadb's type normalisation and is not\n    a trustworthy restoration source.\n    \"\"\"\n    if not os.path.isfile(sidecar_path):\n        raise FileNotFoundError(f\"Sidecar database not found: {sidecar_path}\")\n    out: dict[str, int] = {}\n    with sqlite3.connect(sidecar_path) as conn:\n        rows = conn.execute(\"SELECT segment_id, seq_id, typeof(seq_id) FROM max_seq_id\").fetchall()\n    for segment_id, seq_id, kind in rows:\n        if kind == \"blob\":\n            raise ValueError(\n                f\"Sidecar has BLOB-typed seq_id for {segment_id}; refusing to use it. \"\n                \"Pass a sidecar that was already migrated to INTEGER rows.\"\n            )\n        out[str(segment_id)] = int(seq_id)\n    return out\n\n\ndef repair_max_seq_id(\n    palace_path: str,\n    *,\n    segment: Optional[str] = None,\n    from_sidecar: Optional[str] = None,\n    threshold: int = MAX_SEQ_ID_SANITY_THRESHOLD,\n    backup: bool = True,\n    dry_run: bool = False,\n    assume_yes: bool = False,\n) -> dict:\n    \"\"\"Un-poison ``max_seq_id`` rows corrupted by ``_fix_blob_seq_ids`` misfire.","sourceCodeStart":2225,"sourceCodeEnd":2261,"githubUrl":"https://github.com/MemPalace/mempalace/blob/06cb6987f02610784fefbad4b2bd5d026d164ba6/mempalace/repair.py#L2225-L2261","documentation":"Error \"Sidecar has BLOB-typed seq_id for {segment_id}; refusing to use it. Pass a sidecar that was already migrated to INTEGER rows.\" thrown in MemPalace/mempalace.","triggerScenarios":"Thrown at mempalace/repair.py:2243 when the library encounters an invalid state.","commonSituations":"Sidecar still has legacy BLOB-typed seq_id values.","solutions":["Pass a sidecar already migrated to INTEGER seq_id rows"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"06cb6987f02610784fefbad4b2bd5d026d164ba6","analyzedAt":"2026-08-15T03:03:36.213Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}