{"record":{"id":"2c468e45cec6f466","repo":"microsoft/semantic-kernel","slug":"failed-to-create-nvidia-settings","errorCode":null,"errorMessage":"Failed to create NVIDIA settings.","messagePattern":"Failed to create NVIDIA settings\\.","errorType":"exception","errorClass":"ServiceInitializationError","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/connectors/ai/nvidia/services/nvidia_chat_completion.py","lineNumber":96,"sourceCode":"                the env vars or .env file value.\n            base_url (str | None): Custom API endpoint. (Optional)\n            client (Optional[AsyncOpenAI]): An existing client to use. (Optional)\n            env_file_path (str | None): Use the environment settings file as a fallback\n                to environment variables. (Optional)\n            env_file_encoding (str | None): The encoding of the environment settings file. (Optional)\n            instruction_role (Literal[\"system\", \"user\", \"assistant\", \"developer\"] | None): The role to use for\n                'instruction' messages. Defaults to \"system\". (Optional)\n        \"\"\"\n        try:\n            nvidia_settings = NvidiaSettings(\n                api_key=api_key,\n                base_url=base_url,\n                chat_model_id=ai_model_id,\n                env_file_path=env_file_path,\n                env_file_encoding=env_file_encoding,\n            )\n        except ValidationError as ex:\n            raise ServiceInitializationError(\"Failed to create NVIDIA settings.\", ex) from ex\n\n        if not client and not nvidia_settings.api_key:\n            raise ServiceInitializationError(\"The NVIDIA API key is required.\")\n        if not nvidia_settings.chat_model_id:\n            # Default fallback model\n            nvidia_settings.chat_model_id = DEFAULT_NVIDIA_CHAT_MODEL\n            logger.warning(f\"Default chat model set as: {nvidia_settings.chat_model_id}\")\n\n        # Create client if not provided\n        if not client:\n            client = AsyncOpenAI(\n                api_key=nvidia_settings.api_key.get_secret_value() if nvidia_settings.api_key else None,\n                base_url=nvidia_settings.base_url,\n            )\n\n        super().__init__(\n            ai_model_id=nvidia_settings.chat_model_id,\n            api_key=nvidia_settings.api_key.get_secret_value() if nvidia_settings.api_key else None,","sourceCodeStart":78,"sourceCodeEnd":114,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/connectors/ai/nvidia/services/nvidia_chat_completion.py#L78-L114","documentation":"Raised as ServiceInitializationError when constructing the pydantic `NvidiaSettings` for the NVIDIA chat completion service raises a `ValidationError`. The original validation error is passed as a second arg and chained with `from ex`. This is a configuration/structure failure, not a network failure.","triggerScenarios":"Constructing `NvidiaChatCompletion(...)` where merged config (constructor args + NVIDIA_API_KEY/NVIDIA_BASE_URL/NVIDIA_CHAT_MODEL_ID env + .env) fails pydantic validation: invalid base_url format (not a valid HttpUrl), api_key wrong type, or env_file unreadable.","commonSituations":"NVIDIA_BASE_URL missing the scheme (e.g. 'host.com' instead of 'https://host.com'), a .env path that does not exist, NVIDIA_API_KEY empty string failing the SecretStr validator, pydantic v1/v2 behavior differences.","solutions":["Inspect the chained `ex` for the exact failing field.","Pass valid base_url (full https:// URL) and api_key explicitly, or fix the matching env vars.","Verify env_file_path exists and is parseable in the given encoding.","Confirm NVIDIA settings field names against the NvidiaSettings model (NVIDIA_API_KEY, NVIDIA_BASE_URL, NVIDIA_CHAT_MODEL_ID)."],"exampleFix":"# before\nsvc = NvidiaChatCompletion()  # -> ServiceInitializationError\n\n# after\nsvc = NvidiaChatCompletion(\n    api_key=os.environ['NVIDIA_API_KEY'],\n    base_url='https://integrate.api.nvidia.com/v1',\n    ai_model_id='meta/llama3-8b-instruct',\n)","handlingStrategy":"validation","validationCode":"from semantic_kernel.connectors.ai.nvidia import NvidiaSettings\nfrom pydantic import ValidationError\ntry:\n    NvidiaSettings(api_key=os.environ.get('NVIDIA_API_KEY'),\n                   base_url=os.environ.get('NVIDIA_BASE_URL', 'https://integrate.api.nvidia.com/v1'),\n                   chat_model_id='meta/llama3-8b-instruct')\nexcept ValidationError as e:\n    raise SystemExit(f'Fix NVIDIA settings first: {e}')","typeGuard":"from semantic_kernel.exceptions import ServiceInitializationError\n\ndef is_nvidia_settings_error(e: BaseException) -> bool:\n    return isinstance(e, ServiceInitializationError) and 'Failed to create NVIDIA settings' in str(e)","tryCatchPattern":"from semantic_kernel.exceptions import ServiceInitializationError\ntry:\n    svc = NvidiaChatCompletion()\nexcept ServiceInitializationError as e:\n    raise SystemExit(f'NVIDIA chat misconfigured: {e.__cause__ or e}') from e","preventionTips":["Always pass base_url as a full https:// URL.","Validate NvidiaSettings with pydantic before constructing the service.","Ensure env_file_path exists when used."],"tags":["nvidia","chat-completion","settings","configuration","pydantic","service-initialization-error"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}