fix: ContextualLogger crashes when callers pass exc_info=True #14

Merged
cal merged 3 commits from fix/contextual-logger-exc-info into main 2026-02-20 03:26:41 +00:00

3 Commits

Author SHA1 Message Date
cal
9db128bd27 Merge branch 'main' into fix/contextual-logger-exc-info
All checks were successful
Build Docker Image / build (pull_request) Successful in 46s
2026-02-20 03:25:32 +00:00
Cal Corum
62b058bddf test: fix weather test expecting 4 embed fields instead of 5
All checks were successful
Build Docker Image / build (pull_request) Successful in 1m30s
The Stadium Image field was added to the weather embed but the
test_full_weather_workflow assertion wasn't updated to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 21:19:31 -06:00
Cal Corum
313c3f857b fix: ContextualLogger crashes when callers pass exc_info=True
ContextualLogger methods forwarded all **kwargs as extra={} to Python's
standard logger. When callers passed exc_info=True, it landed in the
extra dict and Python's LogRecord raised KeyError("Attempt to overwrite
'exc_info' in LogRecord") since exc_info is a reserved attribute.

This caused /submit-scorecard to crash after game data was already
posted, masking the original error and preventing proper rollback.

Fix: Extract exc_info and stack_info from kwargs before passing as extra,
forwarding them as proper logging parameters instead. Also fix direct
callers in submit_scorecard.py and views/players.py to use error=e.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 21:19:06 -06:00