The handle_db_timeout decorator only caught SQLAlchemy's TimeoutError (for pool/connection timeouts) but not asyncpg's QueryCanceledError which is thrown when PostgreSQL's statement_timeout kills a long-running query. This fix: - Import asyncpg.exceptions.QueryCanceledError - Update handle_db_timeout decorator to catch QueryCanceledError and wrap it in DatabaseTimeoutError - Update _handle_dbapi_error method to also handle wrapped QueryCanceledError Fixes #8108 🤖 Generated with [Letta Code](https://letta.com) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Letta <noreply@letta.com> Co-authored-by: datadog-official[bot] <datadog-official[bot]@users.noreply.github.com> Co-authored-by: Kian Jones <11655409+kianjones9@users.noreply.github.com>
35 KiB
35 KiB