{"record":{"id":"95bca0983b9f04bf","repo":"microsoft/semantic-kernel","slug":"weaviatememorystore-requires-a-url-or-api-key-or","errorCode":null,"errorMessage":"WeaviateMemoryStore requires a URL or API key, or to use embed.","messagePattern":"WeaviateMemoryStore requires a URL or API key, or to use embed\\.","errorType":"exception","errorClass":"MemoryConnectorInitializationError","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/memory_stores/weaviate/weaviate_memory_store.py","lineNumber":152,"sourceCode":"        \"\"\"\n        self.settings = WeaviateSettings(\n            url=url,\n            api_key=api_key,\n            use_embed=use_embed,\n            env_file_path=env_file_path,\n            env_file_encoding=env_file_encoding,\n        )\n        if self.settings.use_embed:\n            self.client = weaviate.Client(embedded_options=weaviate.EmbeddedOptions())\n        elif self.settings.api_key and self.settings.url:\n            self.client = weaviate.Client(\n                url=str(self.settings.url),\n                auth_client_secret=weaviate.auth.AuthApiKey(api_key=self.settings.api_key.get_secret_value()),\n            )\n        elif self.settings.url:\n            self.client = weaviate.Client(url=str(self.settings.url))\n        else:\n            raise MemoryConnectorInitializationError(\"WeaviateMemoryStore requires a URL or API key, or to use embed.\")\n\n    async def create_collection(self, collection_name: str) -> None:\n        \"\"\"Creates a new collection in Weaviate.\"\"\"\n        schema = SCHEMA.copy()\n        schema[\"class\"] = collection_name\n        await asyncio.get_running_loop().run_in_executor(None, self.client.schema.create_class, schema)\n\n    async def get_collections(self) -> list[str]:\n        \"\"\"Returns a list of all collections in Weaviate.\"\"\"\n        schemas = await asyncio.get_running_loop().run_in_executor(None, self.client.schema.get)\n        return [schema[\"class\"] for schema in schemas[\"classes\"]]\n\n    async def delete_collection(self, collection_name: str) -> bool:\n        \"\"\"Deletes a collection in Weaviate.\"\"\"\n        await asyncio.get_running_loop().run_in_executor(None, self.client.schema.delete_class, collection_name)\n\n    async def does_collection_exist(self, collection_name: str) -> bool:\n        \"\"\"Checks if a collection exists in Weaviate.\"\"\"","sourceCodeStart":134,"sourceCodeEnd":170,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/memory_stores/weaviate/weaviate_memory_store.py#L134-L170","documentation":"Raised by the (deprecated) WeaviateMemoryStore constructor (MemoryConnectorInitializationError) when none of the client-creation branches match: use_embed is false, not (api_key AND url), and not url. In other words you provided neither an embedded client, nor a usable URL. This old store only understands url/api_key/use_embed — it does NOT support local_host/local_port modes that the newer WeaviateSettings/WeaviateStore support.","triggerScenarios":"Constructing `WeaviateMemoryStore()` with no arguments and no WEAVIATE_URL / WEAVIATE_USE_EMBED env vars; or supplying only an api_key without a url; or wanting a local Docker instance via local_host (unsupported by this deprecated class).","commonSituations":"Missing/misspelled WEAVIATE_URL or WEAVIATE_API_KEY env vars; .env file not loaded; pointing at Weaviate Cloud without the API key; trying local Docker mode with the deprecated store (use WeaviateStore instead).","solutions":["Set WEAVIATE_URL (and WEAVIATE_API_KEY for WCD) env vars, or pass url= and api_key= explicitly.","For local dev/embedded, set WEAVIATE_USE_EMBED=true (or pass use_embed=True).","Migrate to the non-deprecated WeaviateStore + collection, which also supports WEAVIATE_LOCAL_HOST/PORT for Docker."],"exampleFix":"// before\nstore = WeaviateMemoryStore()  # raises\n// after\nstore = WeaviateMemoryStore(url='https://xxx.weaviate.network', api_key='secret')\n// or\nstore = WeaviateMemoryStore(use_embed=True)","handlingStrategy":"validation","validationCode":"import os\nurl = os.environ.get('WEAVIATE_URL')\napi_key = os.environ.get('WEAVIATE_API_KEY')\nuse_embed = os.environ.get('WEAVIATE_USE_EMBED', '').lower() == 'true'\nassert use_embed or url, 'set WEAVIATE_URL (+WEAVIATE_API_KEY) or WEAVIATE_USE_EMBED=true'\nstore = WeaviateMemoryStore(url=url, api_key=api_key, use_embed=use_embed)","typeGuard":null,"tryCatchPattern":"from semantic_kernel.exceptions.memory_connector_exceptions import MemoryConnectorInitializationError\ntry:\n    store = WeaviateMemoryStore(url=url, api_key=api_key)\nexcept MemoryConnectorInitializationError:\n    store = WeaviateMemoryStore(use_embed=True)  # local fallback","preventionTips":["Set WEAVIATE_URL and WEAVIATE_API_KEY (for WCD) or WEAVIATE_USE_EMBED=true in your environment.","Load .env before constructing (pass env_file_path or use python-dotenv).","For local Docker, prefer the non-deprecated WeaviateStore which supports WEAVIATE_LOCAL_HOST/PORT."],"tags":["weaviate","memory-store","initialization","config","deprecated"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}