Skip to content

Commit c1f3b1e

Browse files
author
Mateusz
committed
Improve exception hygiene: Add exc_info=True to logger calls
- session_key_resolver.py: Add exc_info=True to logger.warning in ValueError handler - model_utils.py: Add exc_info=True to logger.error in Exception handler - sse_bytes_parser.py: Add exc_info=True to logger.warning in ValueError handler These changes improve debuggability by including stack traces when exceptions are logged in critical paths (session management, model parsing, streaming).
1 parent 3c58613 commit c1f3b1e

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

src/core/domain/model_utils.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,12 +175,13 @@ def parse_model_with_params(
175175
parsed_model = parse_model_backend(model, default_backend)
176176
backend_type = parsed_model.backend_type
177177
model_name = parsed_model.model_name
178-
except Exception as fallback_error:
179-
# If even the fallback fails, log error and use defaults
180-
logger.error(
181-
f"Failed to parse model string '{model}' even without URI parameters: {fallback_error}. "
182-
f"Using default backend '{default_backend}' and model '{model}'."
183-
)
178+
except Exception as fallback_error:
179+
# If even the fallback fails, log error and use defaults
180+
logger.error(
181+
f"Failed to parse model string '{model}' even without URI parameters: {fallback_error}. "
182+
f"Using default backend '{default_backend}' and model '{model}'.",
183+
exc_info=True,
184+
)
184185
backend_type = default_backend if default_backend else "openai"
185186
model_name = model
186187
return ParsedModelWithParams(

src/core/domain/streaming/parsing/sse_bytes_parser.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ def parse(self, raw_data: Any) -> StreamingContent:
8282
return StreamingContent(content=json_part, raw_data=raw_data)
8383
except ValueError as e:
8484
if "depth" in str(e).lower():
85-
logger.warning("JSON payload too deeply nested: %s", e)
85+
logger.warning(
86+
"JSON payload too deeply nested: %s", e, exc_info=True
87+
)
8688
# Reject deeply nested JSON completely for security
8789
raise ValueError(f"JSON payload too deeply nested: {e}")
8890
raise

src/core/transport/session_key_resolver.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,15 @@ def resolve_session_key_from_request_context(
107107
primary_id=request_id.strip(),
108108
group_id=group_id,
109109
)
110-
except ValueError as e:
111-
# SessionKey validation failed (e.g., empty primary_id after strip)
112-
if logger.isEnabledFor(logging.WARNING):
113-
logger.warning(
114-
"Failed to create SessionKey from context: %s",
115-
e,
116-
extra={"request_id": request_id},
117-
)
110+
except ValueError as e:
111+
# SessionKey validation failed (e.g., empty primary_id after strip)
112+
if logger.isEnabledFor(logging.WARNING):
113+
logger.warning(
114+
"Failed to create SessionKey from context: %s",
115+
e,
116+
exc_info=True,
117+
extra={"request_id": request_id},
118+
)
118119
return None
119120

120121

0 commit comments

Comments
 (0)