{"record":{"id":"b50ed7fb21b63dba","repo":"HKUDS/DeepTutor","slug":"requested-provider-requested-provider-does-not","errorCode":null,"errorMessage":"Requested provider '{requested_provider}' does not match KB provider '{kb_provider}'. A knowledge base is locked to the engine it was created with.","messagePattern":"Requested provider '(.+?)' does not match KB provider '(.+?)'\\. A knowledge base is locked to the engine it was created with\\.","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"deeptutor/api/routers/knowledge.py","lineNumber":2571,"sourceCode":"    is how a caller adding one subtree at a time re-attaches it where it\n    belongs instead of piling every batch at the root (#866).\n    \"\"\"\n    try:\n        manager, kb_name, kb_base_dir = _writable_kb(kb_name)\n        requested_provider = None\n        if rag_provider is not None and str(rag_provider).strip():\n            requested_provider = _validate_registered_provider(rag_provider)\n\n        kb_entry = _load_kb_entry_or_404(manager, kb_name)\n        _assert_kb_writable_or_409(kb_name, kb_entry)\n        kb_path = manager.get_knowledge_base_path(kb_name)\n        raw_dir = kb_path / \"raw\"\n        raw_dir.mkdir(parents=True, exist_ok=True)\n        kb_provider = _validate_registered_provider(\n            kb_entry.get(\"rag_provider\") or DEFAULT_PROVIDER\n        )\n        if requested_provider and requested_provider != kb_provider:\n            raise HTTPException(\n                status_code=400,\n                detail=(\n                    f\"Requested provider '{requested_provider}' does not match KB provider '{kb_provider}'. \"\n                    \"A knowledge base is locked to the engine it was created with.\"\n                ),\n            )\n        _assert_provider_ready(kb_provider)\n        _enforce_provider_formats(kb_provider, files)\n        allowed_extensions = FileTypeRouter.get_supported_extensions()\n        # ``.zip`` is accepted as an upload container; its members are\n        # validated against ``allowed_extensions`` during extraction and the\n        # archive itself is never indexed (``safe_extract_zip`` skips ``.zip``).\n        upload_extensions = allowed_extensions | {\".zip\"}\n        _validate_upload_batch(files, allowed_extensions=upload_extensions, rel_paths=rel_paths)\n        uploaded_files, uploaded_file_paths = await _save_uploaded_files_off_loop(\n            files,\n            raw_dir,\n            allowed_extensions=upload_extensions,","sourceCodeStart":2553,"sourceCodeEnd":2589,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/api/routers/knowledge.py#L2553-L2589","documentation":"Error \"Requested provider '{requested_provider}' does not match KB provider '{kb_provider}'. A knowledge base is locked to the engine it was created with.\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/api/routers/knowledge.py:2571 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"}