From 13df8acad35721aa1346f000b4bcccb2f21c6ed4 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 5 May 2026 19:44:46 +0000 Subject: [PATCH] Surface exception type in error responses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Returning only "Request processing failed" makes debugging in the TEE nearly impossible since stack traces never leave the enclave. Including the exception class name (e.g. ValueError, APIStatusError) is safe — class names don't carry secrets — and is enough to distinguish missing-key errors from upstream provider rejections without further deploy cycles. https://claude.ai/code/session_01GGxcgU3UpPto6cq2AgEjkL --- tee_gateway/controllers/chat_controller.py | 12 +++++++++--- tee_gateway/controllers/completions_controller.py | 5 ++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/tee_gateway/controllers/chat_controller.py b/tee_gateway/controllers/chat_controller.py index 49fb406..e6d9337 100644 --- a/tee_gateway/controllers/chat_controller.py +++ b/tee_gateway/controllers/chat_controller.py @@ -272,7 +272,10 @@ def _create_non_streaming_response(chat_request: CreateChatCompletionRequest): except Exception as e: logger.error(f"Chat completion error: {str(e)}", exc_info=True) - return {"error": "Request processing failed"}, 500 + return { + "error": "Request processing failed", + "exception_type": type(e).__name__, + }, 500 def _create_streaming_response(chat_request: CreateChatCompletionRequest): @@ -598,7 +601,7 @@ def generate(): except Exception as e: logger.error(f"Streaming error: {str(e)}", exc_info=True) - yield f"data: {json.dumps({'error': 'Stream processing failed'})}\n\n" + yield f"data: {json.dumps({'error': 'Stream processing failed', 'exception_type': type(e).__name__})}\n\n" return Response( generate(), @@ -611,7 +614,10 @@ def generate(): except Exception as e: logger.error(f"Stream setup error: {str(e)}", exc_info=True) - return {"error": "Stream setup failed"}, 500 + return { + "error": "Stream setup failed", + "exception_type": type(e).__name__, + }, 500 # --------------------------------------------------------------------------- diff --git a/tee_gateway/controllers/completions_controller.py b/tee_gateway/controllers/completions_controller.py index ba941fe..78b9314 100644 --- a/tee_gateway/controllers/completions_controller.py +++ b/tee_gateway/controllers/completions_controller.py @@ -79,4 +79,7 @@ def create_completion(body): except Exception as e: logger.error(f"Completion error: {str(e)}", exc_info=True) - return {"error": "Request processing failed"}, 500 + return { + "error": "Request processing failed", + "exception_type": type(e).__name__, + }, 500