From 396b98c2a31208e3fdd5ca41be89e6ac820a0f05 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 24 Apr 2026 13:55:26 +0200 Subject: [PATCH 1/2] fix(quart): Use inspect.iscoroutinefunction when Quart does --- sentry_sdk/integrations/quart.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sentry_sdk/integrations/quart.py b/sentry_sdk/integrations/quart.py index c1b8fca717..3191777ce3 100644 --- a/sentry_sdk/integrations/quart.py +++ b/sentry_sdk/integrations/quart.py @@ -1,5 +1,6 @@ import asyncio import inspect +import sys from functools import wraps import sentry_sdk @@ -102,13 +103,17 @@ async def sentry_patched_asgi_app( def patch_scaffold_route() -> None: old_route = Scaffold.route + # Vendored: https://github.com/pallets/quart/blob/5817e983d0b586889337a596d674c0c246d68878/src/quart/app.py#L137-L140 + if sys.version_info >= (3, 12): + iscoroutinefunction = inspect.iscoroutinefunction + else: + iscoroutinefunction = asyncio.iscoroutinefunction + def _sentry_route(*args: "Any", **kwargs: "Any") -> "Any": old_decorator = old_route(*args, **kwargs) def decorator(old_func: "Any") -> "Any": - if inspect.isfunction(old_func) and not asyncio.iscoroutinefunction( - old_func - ): + if inspect.isfunction(old_func) and not iscoroutinefunction(old_func): @wraps(old_func) @ensure_integration_enabled(QuartIntegration, old_func) From ca36be689bdf8dbae380065b272a9a04831363c8 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 24 Apr 2026 13:56:47 +0200 Subject: [PATCH 2/2] reorder --- sentry_sdk/integrations/quart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sentry_sdk/integrations/quart.py b/sentry_sdk/integrations/quart.py index 3191777ce3..dfd5cc2fa3 100644 --- a/sentry_sdk/integrations/quart.py +++ b/sentry_sdk/integrations/quart.py @@ -101,14 +101,14 @@ async def sentry_patched_asgi_app( def patch_scaffold_route() -> None: - old_route = Scaffold.route - # Vendored: https://github.com/pallets/quart/blob/5817e983d0b586889337a596d674c0c246d68878/src/quart/app.py#L137-L140 if sys.version_info >= (3, 12): iscoroutinefunction = inspect.iscoroutinefunction else: iscoroutinefunction = asyncio.iscoroutinefunction + old_route = Scaffold.route + def _sentry_route(*args: "Any", **kwargs: "Any") -> "Any": old_decorator = old_route(*args, **kwargs)