From f60d86e8cbd8331dc7f3a282b901ea0bc4d6ec6f Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Mon, 23 Mar 2026 14:11:14 +0000 Subject: [PATCH] Fix task_completed WebSocket payload too large MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't send full persona objects in WS event — only send counts. Frontend navigates to list page where personas load from API. Co-Authored-By: Claude Sonnet 4.6 --- backend/app/routes/ai_personas.py | 4 ++-- src/components/AIRecruiter.tsx | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/app/routes/ai_personas.py b/backend/app/routes/ai_personas.py index 322c964c..989b89e1 100755 --- a/backend/app/routes/ai_personas.py +++ b/backend/app/routes/ai_personas.py @@ -1142,8 +1142,8 @@ async def _run_persona_generation_bg( 'task_id': task_id, 'task_type': 'persona_full_generation', 'message': f'Successfully generated {len(completed_personas)} personas', - 'personas': completed_personas, - 'errors': failed_personas if failed_personas else None, + 'personas_created': len(completed_personas), + 'errors_count': len(failed_personas), 'partial_success': len(failed_personas) > 0 and len(completed_personas) > 0 }) diff --git a/src/components/AIRecruiter.tsx b/src/components/AIRecruiter.tsx index 2a63212f..39d8f569 100755 --- a/src/components/AIRecruiter.tsx +++ b/src/components/AIRecruiter.tsx @@ -75,18 +75,18 @@ export default function AIRecruiter({ targetFolderId, targetFolderName }: AIRecr setGenerationToastId(null); } - const personas: Persona[] = data.personas || []; - const errors = data.errors || []; + const count = data.personas_created || 0; + const errorsCount = data.errors_count || 0; - if (personas.length > 0) { - if (data.partial_success && errors.length > 0) { + if (count > 0) { + if (data.partial_success && errorsCount > 0) { toast.success("Some personas generated successfully", { - description: `${personas.length} created, ${errors.length} failed.`, + description: `${count} created, ${errorsCount} failed.`, duration: 8000 }); } else { toast.success("Personas generated and saved successfully", { - description: `${personas.length} personas saved${targetFolderName ? ` to "${targetFolderName}"` : ''}.` + description: `${count} personas saved${targetFolderName ? ` to "${targetFolderName}"` : ''}.` }); } setTimeout(() => navigate('/synthetic-users?mode=view'), 1500);