{"record":{"id":"3d867c87a1ba8f08","repo":"HKUDS/DeepTutor","slug":"knowledge-base-claimed-by-already-uses-that-ma","errorCode":null,"errorMessage":"Knowledge base '{claimed_by}' already uses that MarginNote store. Pick a name that differs by more than punctuation.","messagePattern":"Knowledge base '(.+?)' already uses that MarginNote store\\. Pick a name that differs by more than punctuation\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"deeptutor/knowledge/manager.py","lineNumber":929,"sourceCode":"        claimed by another library.\n        \"\"\"\n        name = (name or \"\").strip()\n        if not name:\n            raise ValueError(\"Knowledge base name is required.\")\n\n        self.config = self._load_config()\n        knowledge_bases = self.config.setdefault(\"knowledge_bases\", {})\n        if name in knowledge_bases:\n            raise ValueError(f\"A knowledge base named '{name}' already exists.\")\n\n        db_path = (db_path or \"\").strip()\n        claimed_by = self._marginnote4_store_owner(name, db_path, knowledge_bases)\n        if claimed_by:\n            # Distinct names can still derive one store: the default path keeps\n            # only alphanumerics, `-` and `_`, so \"My Lib\" and \"My/Lib\" both\n            # land on My_Lib.db. Sharing it would merge two libraries' objects\n            # and let either one's devices sync into the other.\n            raise ValueError(\n                f\"Knowledge base '{claimed_by}' already uses that MarginNote store. \"\n                \"Pick a name that differs by more than punctuation.\"\n            )\n\n        now = datetime.now().isoformat()\n        entry: dict[str, Any] = {\n            \"path\": name,\n            \"type\": MARGINNOTE4_KB_TYPE,\n            \"description\": description or f\"MarginNote 4 library: {name}\",\n            \"status\": \"ready\",\n            \"needs_reindex\": False,\n            \"created_at\": now,\n            \"updated_at\": now,\n        }\n        if db_path:\n            entry[\"db_path\"] = db_path\n        knowledge_bases[name] = entry\n        self._save_config()","sourceCodeStart":911,"sourceCodeEnd":947,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/knowledge/manager.py#L911-L947","documentation":"Error \"Knowledge base '{claimed_by}' already uses that MarginNote store. Pick a name that differs by more than punctuation.\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/knowledge/manager.py:929 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}