Skip to content

Commit 6848e81

Browse files
2 parents 905a73a + c0e4f2e commit 6848e81

File tree

3 files changed

+91
-164
lines changed

3 files changed

+91
-164
lines changed

src/backend/v3/orchestration/orchestration_manager.py

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,38 @@ async def run_orchestration(self, user_id, input_task) -> None:
182182
)
183183
self.logger.info(f"Final result sent via WebSocket to user {user_id}")
184184

185+
except ResourceNotFoundError as e:
186+
self.logger.error(f"Agent not found: {e}")
187+
self.logger.info(f"Error: {e}")
188+
self.logger.info(f"Error type: {type(e).__name__}")
189+
if hasattr(e, "__dict__"):
190+
self.logger.info(f"Error attributes: {e.__dict__}")
191+
self.logger.info("=" * 50)
192+
error_content = "**Attention:** The agent is currently unavailable. Please check if it was deleted or recreated.\n\nIf yes, please create a new plan from the home page."
193+
self.logger.info(f"🔴 Sending error message to user {user_id}: {error_content}")
194+
195+
await connection_config.send_status_update_async(
196+
{
197+
"type": WebsocketMessageType.ERROR_MESSAGE,
198+
"data": {
199+
"content": error_content,
200+
"status": "error",
201+
"timestamp": asyncio.get_event_loop().time(),
202+
},
203+
},
204+
user_id,
205+
message_type=WebsocketMessageType.ERROR_MESSAGE,
206+
)
207+
self.logger.info(f"✅ Error message sent via WebSocket to user {user_id}")
208+
185209
except Exception as e:
186210
self.logger.error(f"Error processing final result: {e}")
187211
# Send error message to user
188212
await connection_config.send_status_update_async(
189213
{
190214
"type": WebsocketMessageType.ERROR_MESSAGE,
191215
"data": {
192-
"content": "An error occurred while processing the final response.",
216+
"content": "**Attention:** An error occurred while processing the final response.\n\nPlease try creating a new plan from the home page.",
193217
"status": "error",
194218
"timestamp": asyncio.get_event_loop().time(),
195219
},
@@ -198,26 +222,6 @@ async def run_orchestration(self, user_id, input_task) -> None:
198222
message_type=WebsocketMessageType.ERROR_MESSAGE,
199223
)
200224

201-
except ResourceNotFoundError as e:
202-
self.logger.error(f"Agent not found: {e}")
203-
self.logger.info(f"Error: {e}")
204-
self.logger.info(f"Error type: {type(e).__name__}")
205-
if hasattr(e, "__dict__"):
206-
self.logger.info(f"Error attributes: {e.__dict__}")
207-
self.logger.info("=" * 50)
208-
await connection_config.send_status_update_async(
209-
{
210-
"type": WebsocketMessageType.ERROR_MESSAGE,
211-
"data": {
212-
"content": "The agent is currently unavailable. Please check if it was deleted or recreated.",
213-
"status": "error",
214-
"timestamp": asyncio.get_event_loop().time(),
215-
},
216-
},
217-
user_id,
218-
message_type=WebsocketMessageType.ERROR_MESSAGE,
219-
)
220-
221225
except RuntimeError as e:
222226
if "did not return any response" in str(e):
223227
self.logger.error(f"Agent failed: {e}")
@@ -226,7 +230,7 @@ async def run_orchestration(self, user_id, input_task) -> None:
226230
{
227231
"type": WebsocketMessageType.ERROR_MESSAGE,
228232
"data": {
229-
"content": "I'm having trouble connecting to the agent right now. Please try again later.",
233+
"content": "**Attention:** I'm having trouble connecting to the agent right now.\n\nPlease try creating a new plan from the home page or try again later.",
230234
"status": "error",
231235
"timestamp": asyncio.get_event_loop().time(),
232236
},
@@ -246,7 +250,7 @@ async def run_orchestration(self, user_id, input_task) -> None:
246250
{
247251
"type": WebsocketMessageType.ERROR_MESSAGE,
248252
"data": {
249-
"content": "Something went wrong. Please try again later.",
253+
"content": "**Attention:** Something went wrong.\n\nPlease try creating a new plan from the home page or try again later.",
250254
"status": "error",
251255
"timestamp": asyncio.get_event_loop().time(),
252256
},
@@ -262,12 +266,16 @@ async def run_orchestration(self, user_id, input_task) -> None:
262266
if hasattr(e, "__dict__"):
263267
self.logger.info(f"Error attributes: {e.__dict__}")
264268
self.logger.info("=" * 50)
265-
# Always send error to frontend
269+
270+
error_content = "**Attention:** Something went wrong.\n\nPlease try creating a new plan from the home page or try again later."
271+
272+
self.logger.info(f"🔴 Sending error message to user {user_id}: {error_content}")
273+
266274
await connection_config.send_status_update_async(
267275
{
268276
"type": WebsocketMessageType.ERROR_MESSAGE,
269277
"data": {
270-
"content": "Something went wrong. Please try again later.",
278+
"content": error_content,
271279
"status": "error",
272280
"timestamp": asyncio.get_event_loop().time(),
273281
},
@@ -276,5 +284,7 @@ async def run_orchestration(self, user_id, input_task) -> None:
276284
message_type=WebsocketMessageType.ERROR_MESSAGE,
277285
)
278286

287+
self.logger.info(f"✅ Error message sent via WebSocket to user {user_id}")
288+
279289
finally:
280290
await runtime.stop_when_idle()

src/frontend/src/components/content/PlanChat.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ interface SimplifiedPlanChatProps extends PlanChatProps {
4848
handleApprovePlan: () => Promise<void>;
4949
handleRejectPlan: () => Promise<void>;
5050
processingApproval: boolean;
51-
networkError: boolean;
5251

5352
}
5453

@@ -59,7 +58,6 @@ const PlanChat: React.FC<SimplifiedPlanChatProps> = ({
5958
submittingChatDisableInput,
6059
OnChatSubmit,
6160
onPlanApproval,
62-
networkError,
6361
onPlanReceived,
6462
initialTask,
6563
planApprovalRequest,
@@ -110,7 +108,7 @@ const PlanChat: React.FC<SimplifiedPlanChatProps> = ({
110108
{renderPlanResponse(planApprovalRequest, handleApprovePlan, handleRejectPlan, processingApproval, showApprovalButtons)}
111109
{renderAgentMessages(agentMessages)}
112110

113-
{showProcessingPlanSpinner && !networkError && renderPlanExecutionMessage()}
111+
{showProcessingPlanSpinner && renderPlanExecutionMessage()}
114112
{/* Streaming plan updates */}
115113
{showBufferingText && (
116114
<StreamingBufferMessage

0 commit comments

Comments
 (0)