@@ -186,7 +186,7 @@ async def handle_chat():
186186 if conversation :
187187 state = routing_service .derive_state_from_conversation (conversation )
188188 except Exception as e :
189- logger .warning (f"Failed to get conversation state: { e } " )
189+ logger .exception (f"Failed to get conversation state: { e } " )
190190
191191 has_generated_content_flag = data .get ("has_generated_content" , False )
192192 if has_generated_content_flag :
@@ -333,7 +333,7 @@ async def _handle_parse_brief(
333333 generated_title = generated_title
334334 )
335335 except Exception as e :
336- logger .warning (f"Failed to save message to CosmosDB: { e } " )
336+ logger .exception (f"Failed to save message to CosmosDB: { e } " )
337337
338338 # Parse the brief
339339 brief , questions , blocked = await orchestrator .parse_brief (message )
@@ -354,7 +354,7 @@ async def _handle_parse_brief(
354354 }
355355 )
356356 except Exception as e :
357- logger .warning (f"Failed to save RAI response to CosmosDB: { e } " )
357+ logger .exception (f"Failed to save RAI response to CosmosDB: { e } " )
358358
359359 return jsonify ({
360360 "action_type" : "rai_blocked" ,
@@ -381,7 +381,7 @@ async def _handle_parse_brief(
381381 }
382382 )
383383 except Exception as e :
384- logger .warning (f"Failed to save clarification to CosmosDB: { e } " )
384+ logger .exception (f"Failed to save clarification to CosmosDB: { e } " )
385385
386386 # Save partial brief to conversation so it can be confirmed later
387387 try :
@@ -393,7 +393,7 @@ async def _handle_parse_brief(
393393 brief = brief
394394 )
395395 except Exception as e :
396- logger .warning (f"Failed to save partial brief: { e } " )
396+ logger .exception (f"Failed to save partial brief: { e } " )
397397
398398 return jsonify ({
399399 "action_type" : "clarification_needed" ,
@@ -427,7 +427,7 @@ async def _handle_parse_brief(
427427 }
428428 )
429429 except Exception as e :
430- logger .warning (f"Failed to save brief to CosmosDB: { e } " )
430+ logger .exception (f"Failed to save brief to CosmosDB: { e } " )
431431
432432 return jsonify ({
433433 "action_type" : "brief_parsed" ,
@@ -478,7 +478,7 @@ async def _handle_confirm_brief(
478478 metadata = {"status" : "brief_confirmed" , "brief_confirmed" : True }
479479 )
480480 except Exception as e :
481- logger .warning (f"Failed to save confirmed brief: { e } " )
481+ logger .exception (f"Failed to save confirmed brief: { e } " )
482482
483483 return jsonify ({
484484 "action_type" : "brief_confirmed" ,
@@ -517,7 +517,7 @@ async def _handle_refine_brief(
517517 }
518518 )
519519 except Exception as e :
520- logger .warning (f"Failed to save refinement message: { e } " )
520+ logger .exception (f"Failed to save refinement message: { e } " )
521521
522522 # Use orchestrator to refine the brief
523523 brief , questions , blocked = await orchestrator .parse_brief (message )
@@ -547,7 +547,7 @@ async def _handle_refine_brief(
547547 }
548548 )
549549 except Exception as e :
550- logger .warning (f"Failed to save clarification: { e } " )
550+ logger .exception (f"Failed to save clarification: { e } " )
551551
552552 # Merge partial brief with existing brief for confirmation option
553553 merged_brief = brief .model_dump () if brief else {}
@@ -568,7 +568,7 @@ async def _handle_refine_brief(
568568 brief = CreativeBrief (** merged_brief ) if merged_brief else None
569569 )
570570 except Exception as e :
571- logger .warning (f"Failed to save merged brief: { e } " )
571+ logger .exception (f"Failed to save merged brief: { e } " )
572572
573573 return jsonify ({
574574 "action_type" : "clarification_needed" ,
@@ -611,7 +611,7 @@ async def _handle_refine_brief(
611611 }
612612 )
613613 except Exception as e :
614- logger .warning (f"Failed to save refined brief: { e } " )
614+ logger .exception (f"Failed to save refined brief: { e } " )
615615
616616 return jsonify ({
617617 "action_type" : "brief_parsed" ,
@@ -647,7 +647,7 @@ async def _handle_search_products(
647647 }
648648 )
649649 except Exception as e :
650- logger .warning (f"Failed to save search message: { e } " )
650+ logger .exception (f"Failed to save search message: { e } " )
651651
652652 # Get available products from catalog
653653 try :
@@ -663,7 +663,7 @@ async def _handle_search_products(
663663 filename = original_url .split ("/" )[- 1 ] if "/" in original_url else original_url
664664 p ["image_url" ] = f"/api/product-images/{ filename } "
665665 except Exception as e :
666- logger .warning (f"Failed to get products from CosmosDB: { e } " )
666+ logger .exception (f"Failed to get products from CosmosDB: { e } " )
667667 available_products = []
668668
669669 # Use orchestrator to process the selection request
@@ -687,7 +687,7 @@ async def _handle_search_products(
687687 }
688688 )
689689 except Exception as e :
690- logger .warning (f"Failed to save search response: { e } " )
690+ logger .exception (f"Failed to save search response: { e } " )
691691
692692 return jsonify ({
693693 "action_type" : "products_found" ,
@@ -749,7 +749,7 @@ async def _handle_generate_content(
749749 }
750750 )
751751 except Exception as e :
752- logger .warning (f"Failed to save generation request: { e } " )
752+ logger .exception (f"Failed to save generation request: { e } " )
753753
754754 # Start background task
755755 asyncio .create_task (_run_generation_task (
@@ -801,7 +801,7 @@ async def _handle_modify_image(
801801 conversation = fresh_conversation
802802 logger .info (f"Fetched fresh conversation data for { conversation_id } " )
803803 except Exception as e :
804- logger .warning (f"Failed to fetch fresh conversation, using stale data: { e } " )
804+ logger .exception (f"Failed to fetch fresh conversation, using stale data: { e } " )
805805
806806 # Save user message
807807 try :
@@ -816,7 +816,7 @@ async def _handle_modify_image(
816816 }
817817 )
818818 except Exception as e :
819- logger .warning (f"Failed to save image modification request: { e } " )
819+ logger .exception (f"Failed to save image modification request: { e } " )
820820
821821 # Get existing generated content
822822 generated_content = conversation .get ("generated_content" ) if conversation else None
@@ -958,7 +958,7 @@ async def _run_regeneration_task(
958958 response ["image_url" ] = f"/api/images/{ conversation_id } /{ filename } "
959959 del response ["image_base64" ]
960960 except Exception as e :
961- logger .warning (f"Failed to save regenerated image to blob: { e } " )
961+ logger .exception (f"Failed to save regenerated image to blob: { e } " )
962962
963963 # Save assistant response
964964 existing_content = {}
@@ -1041,7 +1041,7 @@ async def _run_regeneration_task(
10411041 )
10421042 logger .info (f"Updated brief visual_guidelines with modification: { modification_request } " )
10431043 except Exception as e :
1044- logger .warning (f"Failed to save regeneration response to CosmosDB: { e } " )
1044+ logger .exception (f"Failed to save regeneration response to CosmosDB: { e } " )
10451045
10461046 # Store result (use updated text_content if we replaced product name)
10471047 _generation_tasks [task_id ]["status" ] = "completed"
@@ -1128,7 +1128,7 @@ async def _handle_general_chat(
11281128 generated_title = generated_title
11291129 )
11301130 except Exception as e :
1131- logger .warning (f"Failed to save message: { e } " )
1131+ logger .exception (f"Failed to save message: { e } " )
11321132
11331133 # For non-streaming response, collect orchestrator output
11341134 response_content = ""
@@ -1156,7 +1156,7 @@ async def _handle_general_chat(
11561156 }
11571157 )
11581158 except Exception as e :
1159- logger .warning (f"Failed to save response: { e } " )
1159+ logger .exception (f"Failed to save response: { e } " )
11601160
11611161 return jsonify ({
11621162 "action_type" : "chat_response" ,
@@ -1210,7 +1210,7 @@ async def _run_generation_task(task_id: str, brief: CreativeBrief, products_data
12101210 response ["image_blob_url" ] = blob_url # Include the original blob URL
12111211 del response ["image_base64" ]
12121212 except Exception as e :
1213- logger .warning (f"Failed to save image to blob: { e } " )
1213+ logger .exception (f"Failed to save image to blob: { e } " )
12141214
12151215 # Save to CosmosDB
12161216 try :
@@ -1242,7 +1242,7 @@ async def _run_generation_task(task_id: str, brief: CreativeBrief, products_data
12421242 generated_content = generated_content_to_save
12431243 )
12441244 except Exception as e :
1245- logger .warning (f"Failed to save generated content to CosmosDB: { e } " )
1245+ logger .exception (f"Failed to save generated content to CosmosDB: { e } " )
12461246
12471247 _generation_tasks [task_id ]["status" ] = "completed"
12481248 _generation_tasks [task_id ]["result" ] = response
@@ -1320,7 +1320,7 @@ async def start_generation():
13201320 }
13211321 )
13221322 except Exception as e :
1323- logger .warning (f"Failed to save generation request to CosmosDB: { e } " )
1323+ logger .exception (f"Failed to save generation request to CosmosDB: { e } " )
13241324
13251325 # Start background task
13261326 asyncio .create_task (_run_generation_task (
@@ -1665,7 +1665,7 @@ async def delete_conversation(conversation_id: str):
16651665 track_event_if_configured ("Conversation_Deleted" , {"conversation_id" : conversation_id , "user_id" : user_id })
16661666 return jsonify ({"success" : True , "message" : "Conversation deleted" })
16671667 except Exception as e :
1668- logger .warning (f"Failed to delete conversation: { e } " )
1668+ logger .exception (f"Failed to delete conversation: { e } " )
16691669 return jsonify ({"error" : "Failed to delete conversation" }), 500
16701670
16711671
@@ -1698,7 +1698,7 @@ async def update_conversation(conversation_id: str):
16981698 return jsonify ({"success" : True , "message" : "Conversation renamed" , "title" : new_title })
16991699 return jsonify ({"error" : "Conversation not found" }), 404
17001700 except Exception as e :
1701- logger .warning (f"Failed to rename conversation: { e } " )
1701+ logger .exception (f"Failed to rename conversation: { e } " )
17021702 return jsonify ({"error" : "Failed to rename conversation" }), 500
17031703
17041704
@@ -1722,7 +1722,7 @@ async def delete_all_conversations():
17221722 "deleted_count" : deleted_count
17231723 })
17241724 except Exception as e :
1725- logger .warning (f"Failed to delete all conversations: { e } " )
1725+ logger .exception (f"Failed to delete all conversations: { e } " )
17261726 return jsonify ({"error" : "Failed to delete conversations" }), 500
17271727
17281728
@@ -1775,13 +1775,13 @@ async def startup():
17751775 await get_cosmos_service ()
17761776 logger .info ("CosmosDB service initialized" )
17771777 except Exception as e :
1778- logger .warning (f"CosmosDB service initialization failed (may be firewall): { e } " )
1778+ logger .exception (f"CosmosDB service initialization failed (may be firewall): { e } " )
17791779
17801780 try :
17811781 await get_blob_service ()
17821782 logger .info ("Blob storage service initialized" )
17831783 except Exception as e :
1784- logger .warning (f"Blob storage service initialization failed: { e } " )
1784+ logger .exception (f"Blob storage service initialization failed: { e } " )
17851785
17861786 logger .info ("Application startup complete" )
17871787
0 commit comments