From 4c5098cb3177d7ca9c6c2c0b4b251219bb8e0118 Mon Sep 17 00:00:00 2001 From: Matt Raible Date: Thu, 10 Jul 2025 10:50:41 -0600 Subject: [PATCH 1/3] Improve error handling in servicenow function --- functions/servicenow/main.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/functions/servicenow/main.py b/functions/servicenow/main.py index 3881c09..ea0ab9e 100644 --- a/functions/servicenow/main.py +++ b/functions/servicenow/main.py @@ -101,6 +101,12 @@ def on_post(request: Request, config: Dict[str, object] | None, logger: Logger) }, code=201 if response["status_code"] == 200 else response["status_code"] ) + except ValueError as e: + logger.error(f"Error processing ServiceNow response: {str(e)}", exc_info=True) + return Response( + code=500, + errors=[APIError(code=500, message=f"Error creating incident: {str(e)}")] + ) except Exception as e: logger.error(f"Error creating ServiceNow incident: {str(e)}", exc_info=True) return Response( From b687ea18002bf1bd23905163c901b3299c5ac247 Mon Sep 17 00:00:00 2001 From: Matt Raible Date: Thu, 10 Jul 2025 10:52:28 -0600 Subject: [PATCH 2/3] Add comments --- functions/servicenow/main.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/functions/servicenow/main.py b/functions/servicenow/main.py index ea0ab9e..3c1e1fe 100644 --- a/functions/servicenow/main.py +++ b/functions/servicenow/main.py @@ -102,12 +102,14 @@ def on_post(request: Request, config: Dict[str, object] | None, logger: Logger) code=201 if response["status_code"] == 200 else response["status_code"] ) except ValueError as e: + # ValueError can be thrown if one of the fields accessed in the response does not exist logger.error(f"Error processing ServiceNow response: {str(e)}", exc_info=True) return Response( code=500, errors=[APIError(code=500, message=f"Error creating incident: {str(e)}")] ) except Exception as e: + # Catch-all for unexpected errors logger.error(f"Error creating ServiceNow incident: {str(e)}", exc_info=True) return Response( code=500, From 11f65cc0b7c343726c996b556e8e592fcf802ffa Mon Sep 17 00:00:00 2001 From: Matt Raible Date: Thu, 10 Jul 2025 10:53:03 -0600 Subject: [PATCH 3/3] Use different exception variable names --- functions/servicenow/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/functions/servicenow/main.py b/functions/servicenow/main.py index 3c1e1fe..e03369d 100644 --- a/functions/servicenow/main.py +++ b/functions/servicenow/main.py @@ -101,12 +101,12 @@ def on_post(request: Request, config: Dict[str, object] | None, logger: Logger) }, code=201 if response["status_code"] == 200 else response["status_code"] ) - except ValueError as e: + except ValueError as v: # ValueError can be thrown if one of the fields accessed in the response does not exist - logger.error(f"Error processing ServiceNow response: {str(e)}", exc_info=True) + logger.error(f"Error processing ServiceNow response: {str(v)}", exc_info=True) return Response( code=500, - errors=[APIError(code=500, message=f"Error creating incident: {str(e)}")] + errors=[APIError(code=500, message=f"Error creating incident: {str(v)}")] ) except Exception as e: # Catch-all for unexpected errors