Fix Flow persistence with nested Pydantic models (issue #2929)

- Use CrewJSONEncoder in SQLiteFlowPersistence.save_state() to properly serialize nested Pydantic models
- Add comprehensive test for nested Pydantic model persistence
- Resolves RuntimeError: Object of type CustomPydanticModel is not JSON serializable

Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
Devin AI
2025-06-01 06:54:48 +00:00
parent c045399d6b
commit f47ed4f1f1
2 changed files with 46 additions and 1 deletions

View File

@@ -11,6 +11,7 @@ from typing import Any, Dict, Optional, Union
from pydantic import BaseModel
from crewai.flow.persistence.base import FlowPersistence
from crewai.utilities.crew_json_encoder import CrewJSONEncoder
class SQLiteFlowPersistence(FlowPersistence):
@@ -103,7 +104,7 @@ class SQLiteFlowPersistence(FlowPersistence):
flow_uuid,
method_name,
datetime.now(timezone.utc).isoformat(),
json.dumps(state_dict),
json.dumps(state_dict, cls=CrewJSONEncoder),
),
)