]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
handle asyncpg InternalClientError
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 17 Apr 2026 20:13:53 +0000 (16:13 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 17 Apr 2026 20:15:17 +0000 (16:15 -0400)
Fixed issue where the asyncpg driver could throw an insufficiently-handled
exception ``InternalClientError`` under some circumstances, leading to
connections not being properly marked as invalidated.

Fixes: #13241
References: https://github.com/MagicStack/asyncpg/issues/1069
Change-Id: Iaaf551b3d7b062cce62e13b441161583a484615f
(cherry picked from commit 70de8780239972233fe2b7b4121251698bbf19ca)

doc/build/changelog/unreleased_20/13241.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/postgresql/asyncpg.py

diff --git a/doc/build/changelog/unreleased_20/13241.rst b/doc/build/changelog/unreleased_20/13241.rst
new file mode 100644 (file)
index 0000000..3b12945
--- /dev/null
@@ -0,0 +1,9 @@
+.. change::
+    :tags: bug, postgresql
+    :tickets: 13241
+
+    Fixed issue where the asyncpg driver could throw an insufficiently-handled
+    exception ``InternalClientError`` under some circumstances, leading to
+    connections not being properly marked as invalidated.
+
+
index 616bc467f1b7a4b836743ba0dcd704b2b2d79916..d0b10550cd3ad2af10a9c0ac04b8827dc04fa963 100644 (file)
@@ -990,6 +990,9 @@ class AsyncAdapt_asyncpg_dbapi:
     class InternalServerError(InternalError):
         pass
 
+    class InternalClientError(InternalError):
+        pass
+
     class InvalidCachedStatementError(NotSupportedError):
         def __init__(self, message):
             super().__init__(
@@ -1014,6 +1017,7 @@ class AsyncAdapt_asyncpg_dbapi:
             asyncpg.exceptions.InterfaceError: self.InterfaceError,
             asyncpg.exceptions.InvalidCachedStatementError: self.InvalidCachedStatementError,  # noqa: E501
             asyncpg.exceptions.InternalServerError: self.InternalServerError,
+            asyncpg.exceptions.InternalClientError: self.InternalClientError,
         }
 
     def Binary(self, value):