microsoft/semantic-kernel · error · ServiceInitializationError
The Vertex AI embedding model ID is required.
Error message
The Vertex AI embedding model ID is required.
What it means
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.
Source
Thrown at python/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_text_embedding.py:70
project_id (str): The Google Cloud project ID.
region (str): The Google Cloud region.
embedding_model_id (str): The Gemini model ID.
service_id (str): The Vertex AI service ID.
env_file_path (str): The path to the environment file.
env_file_encoding (str): The encoding of the environment file.
"""
try:
vertex_ai_settings = VertexAISettings(
project_id=project_id,
region=region,
embedding_model_id=embedding_model_id,
env_file_path=env_file_path,
env_file_encoding=env_file_encoding,
)
except ValidationError as e:
raise ServiceInitializationError(f"Failed to validate Vertex AI settings: {e}") from e
if not vertex_ai_settings.embedding_model_id:
raise ServiceInitializationError("The Vertex AI embedding model ID is required.")
super().__init__(
ai_model_id=vertex_ai_settings.embedding_model_id,
service_id=service_id or vertex_ai_settings.embedding_model_id,
service_settings=vertex_ai_settings,
)
@override
async def generate_embeddings(
self,
texts: list[str],
settings: "PromptExecutionSettings | None" = None,
**kwargs: Any,
) -> ndarray:
raw_embeddings = await self.generate_raw_embeddings(texts, settings, **kwargs)
return array(raw_embeddings)
@overrideView on GitHub (pinned to c028a0c7dc)
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.
Example fix
# before svc = VertexAITextEmbedding(project_id='p', region='us-central1') # after svc = VertexAITextEmbedding(project_id='p', region='us-central1', embedding_model_id='textembedding-gecko@003')
Defensive patterns
Strategy: validation
Validate before calling
emb_id = os.environ.get('VERTEX_AI_EMBEDDING_MODEL_ID') or passed_embedding_model_id
assert emb_id, 'Vertex AI embedding model ID is required' Prevention
- 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.
When it happens
Trigger: Constructing VertexAITextEmbedding without embedding_model_id and no corresponding env var. Passing an empty string.
Common situations: Forgetting to set the embedding model env var. Assuming a default embedding model exists. Copying sample code that omits the model argument.
Related errors
- The Vertex AI Gemini model ID is required.
- The Vertex AI Gemini model ID is required.
- Failed to validate Vertex AI settings: {e}
- Ollama embedding model ID is not set.
- The Amazon Bedrock Text Embedding Model ID is missing.
AI-assisted analysis of microsoft/semantic-kernel@c028a0c7dc (2026-08-13).
Data as JSON: /api/errors/b8cbf6239afb8835.
Report an issue: GitHub.