{"record":{"id":"b8cbf6239afb8835","repo":"microsoft/semantic-kernel","slug":"the-vertex-ai-embedding-model-id-is-required","errorCode":null,"errorMessage":"The Vertex AI embedding model ID is required.","messagePattern":"The Vertex AI embedding model ID is required\\.","errorType":"exception","errorClass":"ServiceInitializationError","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_text_embedding.py","lineNumber":70,"sourceCode":"            project_id (str): The Google Cloud project ID.\n            region (str): The Google Cloud region.\n            embedding_model_id (str): The Gemini model ID.\n            service_id (str): The Vertex AI service ID.\n            env_file_path (str): The path to the environment file.\n            env_file_encoding (str): The encoding of the environment file.\n        \"\"\"\n        try:\n            vertex_ai_settings = VertexAISettings(\n                project_id=project_id,\n                region=region,\n                embedding_model_id=embedding_model_id,\n                env_file_path=env_file_path,\n                env_file_encoding=env_file_encoding,\n            )\n        except ValidationError as e:\n            raise ServiceInitializationError(f\"Failed to validate Vertex AI settings: {e}\") from e\n        if not vertex_ai_settings.embedding_model_id:\n            raise ServiceInitializationError(\"The Vertex AI embedding model ID is required.\")\n\n        super().__init__(\n            ai_model_id=vertex_ai_settings.embedding_model_id,\n            service_id=service_id or vertex_ai_settings.embedding_model_id,\n            service_settings=vertex_ai_settings,\n        )\n\n    @override\n    async def generate_embeddings(\n        self,\n        texts: list[str],\n        settings: \"PromptExecutionSettings | None\" = None,\n        **kwargs: Any,\n    ) -> ndarray:\n        raw_embeddings = await self.generate_raw_embeddings(texts, settings, **kwargs)\n        return array(raw_embeddings)\n\n    @override","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_text_embedding.py#L52-L88","documentation":"Raised by VertexAITextEmbedding.__init__ after settings validate but embedding_model_id is falsy. The embedding service cannot target a model without an id, so initialization aborts.","triggerScenarios":"Constructing VertexAITextEmbedding without embedding_model_id and no corresponding env var. Passing an empty string.","commonSituations":"Forgetting to set the embedding model env var. Assuming a default embedding model exists. Copying sample code that omits the model argument.","solutions":["Pass embedding_model_id explicitly (e.g. 'textembedding-gecko@003').","Set the embedding model id via environment variable / .env.","Ensure the id is non-empty and matches a deployed Vertex AI embedding model."],"exampleFix":"# before\nsvc = VertexAITextEmbedding(project_id='p', region='us-central1')\n# after\nsvc = VertexAITextEmbedding(project_id='p', region='us-central1', embedding_model_id='textembedding-gecko@003')","handlingStrategy":"validation","validationCode":"emb_id = os.environ.get('VERTEX_AI_EMBEDDING_MODEL_ID') or passed_embedding_model_id\nassert emb_id, 'Vertex AI embedding model ID is required'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always pass embedding_model_id explicitly or via a verified env var.","Fail fast if the embedding model id is empty.","Keep embedding model ids in a single config source."],"tags":["vertex-ai","configuration","model-id","initialization","embeddings"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}