From c5867698987f0002a76a971595e9baa082aae06d Mon Sep 17 00:00:00 2001 From: dfedoryshchev Date: Sat, 25 Jul 2026 08:24:12 +0100 Subject: [PATCH 1/2] fix(bedrock): guard empty choices in mistral get_outputText --- .../amazon_mistral_transformation.py | 2 +- .../llms/bedrock/chat/test_mistral_config.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py b/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py index 58dfa17a722..8ad93ccabf8 100644 --- a/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py +++ b/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py @@ -99,7 +99,7 @@ class AmazonMistralConfig(AmazonInvokeConfig, BaseConfig): A string with the response of the LLM """ - if "choices" in completion_response: + if "choices" in completion_response and len(completion_response["choices"]) > 0: outputText = completion_response["choices"][0]["message"]["content"] model_response.choices[0].finish_reason = completion_response["choices"][0]["finish_reason"] elif "outputs" in completion_response: diff --git a/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py b/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py index 42261cb3bb1..b5cb5e92ff5 100644 --- a/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py +++ b/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py @@ -1,6 +1,9 @@ +import pytest + from litellm.llms.bedrock.chat.invoke_transformations.amazon_mistral_transformation import ( AmazonMistralConfig, ) +from litellm.llms.bedrock.common_utils import BedrockError from litellm.types.utils import ModelResponse @@ -30,3 +33,12 @@ def test_mistral_get_outputText(): assert outputText == "Hi!" assert model_response.choices[0].finish_reason == "finish" + + +def test_mistral_get_outputText_empty_choices(): + model_response = ModelResponse() + + with pytest.raises(BedrockError): + AmazonMistralConfig.get_outputText( + completion_response={"choices": []}, model_response=model_response + ) From 92827ab9bcb3e6dffcadf096fe29f41de9de1bcc Mon Sep 17 00:00:00 2001 From: dfedoryshchev Date: Tue, 28 Jul 2026 14:30:13 +0100 Subject: [PATCH 2/2] fix(bedrock): guard empty outputs in mistral get_outputText --- .../amazon_mistral_transformation.py | 2 +- .../llms/bedrock/chat/test_mistral_config.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py b/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py index 8ad93ccabf8..61546b659a8 100644 --- a/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py +++ b/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py @@ -102,7 +102,7 @@ class AmazonMistralConfig(AmazonInvokeConfig, BaseConfig): if "choices" in completion_response and len(completion_response["choices"]) > 0: outputText = completion_response["choices"][0]["message"]["content"] model_response.choices[0].finish_reason = completion_response["choices"][0]["finish_reason"] - elif "outputs" in completion_response: + elif "outputs" in completion_response and len(completion_response["outputs"]) > 0: outputText = completion_response["outputs"][0]["text"] model_response.choices[0].finish_reason = completion_response["outputs"][0]["stop_reason"] else: diff --git a/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py b/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py index b5cb5e92ff5..9deb3a7a5ed 100644 --- a/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py +++ b/tests/test_litellm/llms/bedrock/chat/test_mistral_config.py @@ -42,3 +42,12 @@ def test_mistral_get_outputText_empty_choices(): AmazonMistralConfig.get_outputText( completion_response={"choices": []}, model_response=model_response ) + + +def test_mistral_get_outputText_empty_outputs(): + model_response = ModelResponse() + + with pytest.raises(BedrockError): + AmazonMistralConfig.get_outputText( + completion_response={"outputs": []}, model_response=model_response + )