diff --git a/src/backend/base/langflow/api/v1/schemas.py b/src/backend/base/langflow/api/v1/schemas.py index 96b21e3e3..8a767fb3e 100644 --- a/src/backend/base/langflow/api/v1/schemas.py +++ b/src/backend/base/langflow/api/v1/schemas.py @@ -17,7 +17,7 @@ from langflow.services.database.models.flow import FlowCreate, FlowRead from langflow.services.database.models.user import UserRead from langflow.services.settings.feature_flags import FeatureFlags from langflow.services.tracing.schema import Log -from langflow.utils.constants import MAX_TEXT_LENGTH +from langflow.utils.constants import MAX_ITEMS_LENGTH, MAX_TEXT_LENGTH from langflow.utils.util_strings import truncate_long_strings @@ -312,6 +312,11 @@ class ResultDataResponse(BaseModel): if isinstance(obj, dict): return {k: ResultDataResponse._serialize_and_truncate(v, max_length=max_length) for k, v in obj.items()} if isinstance(obj, list | tuple): + # If list is too long, truncate it + if len(obj) > MAX_ITEMS_LENGTH: + truncated_list = list(obj)[:MAX_ITEMS_LENGTH] + truncated_list.append(f"... [truncated {len(obj) - MAX_ITEMS_LENGTH} items]") + obj = truncated_list return [ResultDataResponse._serialize_and_truncate(item, max_length=max_length) for item in obj] return obj diff --git a/src/backend/base/langflow/utils/constants.py b/src/backend/base/langflow/utils/constants.py index 8346019aa..3234230d6 100644 --- a/src/backend/base/langflow/utils/constants.py +++ b/src/backend/base/langflow/utils/constants.py @@ -175,3 +175,4 @@ MESSAGE_SENDER_NAME_AI = "AI" MESSAGE_SENDER_NAME_USER = "User" MAX_TEXT_LENGTH = 20000 +MAX_ITEMS_LENGTH = 1000