diff --git a/sdk/python/packages/flet-core/src/flet_core/page.py b/sdk/python/packages/flet-core/src/flet_core/page.py index 85c1b8781..56491d5e3 100644 --- a/sdk/python/packages/flet-core/src/flet_core/page.py +++ b/sdk/python/packages/flet-core/src/flet_core/page.py @@ -495,7 +495,18 @@ def __on_page_change_event(self, data): def run_task(self, handler: Callable[..., Awaitable[Any]], *args, **kwargs): assert asyncio.iscoroutinefunction(handler) - return asyncio.run_coroutine_threadsafe(handler(*args, **kwargs), self.__loop) + + future = asyncio.run_coroutine_threadsafe(handler(*args, **kwargs), self.__loop) + + def _on_completion(f): + exception = f.exception() + + if exception: + raise exception + + future.add_done_callback(_on_completion) + + return future def run_thread(self, handler, *args): if is_pyodide():