diff --git a/src/crewai/utilities/agent_utils.py b/src/crewai/utilities/agent_utils.py index 41f281188..b7296f291 100644 --- a/src/crewai/utilities/agent_utils.py +++ b/src/crewai/utilities/agent_utils.py @@ -187,7 +187,10 @@ def get_llm_response( continue printer.print(content="All LLMs failed, raising last exception", color="red") - raise last_exception + if last_exception is not None: + raise last_exception + else: + raise RuntimeError("All LLMs failed but no exception was captured") def process_llm_response( diff --git a/tests/agent_test.py b/tests/agent_test.py index 8af97c77f..57d02ad36 100644 --- a/tests/agent_test.py +++ b/tests/agent_test.py @@ -1984,7 +1984,7 @@ def test_crew_agent_executor_litellm_auth_error(): ) # Verify error handling messages - error_message = f"Error during LLM call: {str(mock_llm_call.side_effect)}" + error_message = f"Primary LLM failed: {str(mock_llm_call.side_effect)}" mock_printer.assert_any_call( content=error_message, color="red", diff --git a/tests/test_agent_fallback_llms.py b/tests/test_agent_fallback_llms.py index 6c0d7e733..36d72bfc4 100644 --- a/tests/test_agent_fallback_llms.py +++ b/tests/test_agent_fallback_llms.py @@ -133,7 +133,9 @@ def test_agent_fallback_context_window_error(): with patch.object(primary_llm, 'call') as mock_primary, \ patch.object(fallback_llm, 'call') as mock_fallback: - mock_primary.side_effect = ContextWindowExceededError("Context window exceeded") + mock_primary.side_effect = ContextWindowExceededError( + message="Context window exceeded", model="gpt-4", llm_provider="openai" + ) mock_fallback.return_value = "Fallback response" result = agent.execute_task(task)