microsoft/semantic-kernel · error · ServiceInitializationError

Failed to initialize the Amazon Bedrock Text Completion Serv

Error message

Failed to initialize the Amazon Bedrock Text Completion Service.

What it means

Raised during BedrockTextCompletion construction when BedrockSettings (text_model_id, model_provider, env vars) fails Pydritic validation. Mirrors the chat-completion init error: a ServiceInitializationError thrown before the client is created, with the ValidationError chained.

Source

Thrown at python/semantic_kernel/connectors/ai/bedrock/services/bedrock_text_completion.py:71

        Args:
            model_id: The Amazon Bedrock text model ID to use.
            model_provider: The Bedrock model provider to use.
            service_id: The Service ID for the text completion service.
            runtime_client: The Amazon Bedrock runtime client to use.
            client: The Amazon Bedrock client to use.
            env_file_path: The path to the .env file to load settings from.
            env_file_encoding: The encoding of the .env file.
        """
        try:
            bedrock_settings = BedrockSettings(
                text_model_id=model_id,
                model_provider=model_provider,
                env_file_path=env_file_path,
                env_file_encoding=env_file_encoding,
            )
        except ValidationError as e:
            raise ServiceInitializationError("Failed to initialize the Amazon Bedrock Text Completion Service.") from e

        if bedrock_settings.text_model_id is None:
            raise ServiceInitializationError("The Amazon Bedrock Text Model ID is missing.")

        super().__init__(
            ai_model_id=bedrock_settings.text_model_id,
            service_id=service_id or bedrock_settings.text_model_id,
            runtime_client=runtime_client,
            client=client,
            bedrock_model_provider=bedrock_settings.model_provider,
        )

    # region Overriding base class methods

    # Override from AIServiceClientBase
    @override
    def get_prompt_execution_settings_class(self) -> type["PromptExecutionSettings"]:
        return BedrockTextPromptExecutionSettings

View on GitHub (pinned to c028a0c7dc)

Solutions

  1. Inspect the chained ValidationError (e.__cause__) to find the failing field.
  2. Supply a valid text_model_id and supported model_provider.
  3. Verify env file path/encoding if loading from .env.

Example fix

# before
service = BedrockTextCompletion(model_id="amazon.titan-text", model_provider="bogus")

# after
service = BedrockTextCompletion(model_id="amazon.titan-text-express-v1", model_provider="amazon")
Defensive patterns

Strategy: try-catch

Validate before calling

SUPPORTED_PROVIDERS = {"anthropic", "amazon", "meta", "mistral", "ai21", "cohere", "stability"}
assert model_provider is None or model_provider in SUPPORTED_PROVIDERS

Try / catch

from semantic_kernel.exceptions import ServiceInitializationError
try:
    service = BedrockTextCompletion(model_id=model_id, model_provider=model_provider)
except ServiceInitializationError as e:
    print("Bedrock settings error:", e.__cause__)

Prevention

When it happens

Trigger: BedrockSettings validation fails — invalid model_provider, malformed env, missing/invalid required config for the text-completion settings path.

Common situations: Unsupported model_provider string; wrong env_file_path; settings schema change after an SDK upgrade; typos in configuration.

Related errors


AI-assisted analysis of microsoft/semantic-kernel@c028a0c7dc (2026-08-13). Data as JSON: /api/errors/7c5971ee2cfe498e. Report an issue: GitHub.