diff --git a/src/crewai/task.py b/src/crewai/task.py index f250cc711..fa20cbeba 100644 --- a/src/crewai/task.py +++ b/src/crewai/task.py @@ -280,6 +280,11 @@ class Task(BaseModel): context = f"Previous attempt failed validation: {guardrail_result.error}\nPlease try again." return self._execute_core(agent, context, tools) + # Ensure result is not None before assignment + if guardrail_result.result is None: + raise Exception( + f"Task guardrail returned None as result. This is not allowed." + ) result = guardrail_result.result pydantic_output, json_output = self._export_output(result) diff --git a/tests/test_task_guardrails.py b/tests/test_task_guardrails.py index 3bbf57919..3d1f729c5 100644 --- a/tests/test_task_guardrails.py +++ b/tests/test_task_guardrails.py @@ -3,7 +3,6 @@ import pytest from unittest.mock import Mock -from crewai.agents.agent_builder.base_agent import BaseAgent from crewai.task import Task from crewai.tasks.task_output import TaskOutput