From 291e6c4198e623dd99e72c2d0c099a4fc1365dd6 Mon Sep 17 00:00:00 2001 From: pablodanswer Date: Tue, 6 Aug 2024 20:04:26 -0700 Subject: [PATCH] somewhat clearer API errors (#2064) --- backend/danswer/chat/process_message.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/backend/danswer/chat/process_message.py b/backend/danswer/chat/process_message.py index 0df9807e2..cd9f21b19 100644 --- a/backend/danswer/chat/process_message.py +++ b/backend/danswer/chat/process_message.py @@ -693,18 +693,28 @@ def stream_chat_message_objects( yield cast(ChatPacket, packet) except Exception as e: - logger.exception("Failed to process chat message") - - # Don't leak the API key error_msg = str(e) - if llm.config.api_key and llm.config.api_key.lower() in error_msg.lower(): + logger.exception(f"Failed to process chat message: {error_msg}") + + if "Illegal header value b'Bearer '" in error_msg: error_msg = ( - f"LLM failed to respond. Invalid API " - f"key error from '{llm.config.model_provider}'." + f"Authentication error: Invalid or empty API key provided for '{llm.config.model_provider}'. " + "Please check your API key configuration." ) + elif ( + "Invalid leading whitespace, reserved character(s), or return character(s) in header value" + in error_msg + ): + error_msg = ( + f"Authentication error: Invalid API key format for '{llm.config.model_provider}'. " + "Please ensure your API key does not contain leading/trailing whitespace or invalid characters." + ) + elif llm.config.api_key and llm.config.api_key.lower() in error_msg.lower(): + error_msg = f"LLM failed to respond. Invalid API key error from '{llm.config.model_provider}'." + else: + error_msg = "An unexpected error occurred while processing your request. Please try again later." yield StreamingError(error=error_msg) - # Cancel the transaction so that no messages are saved db_session.rollback() return