diff --git a/src/core/iomgr/executor.c b/src/core/iomgr/executor.c
index d80192e5c099d73f3edb1a6c7979276f07dca77a..94e5114dd5905d59b04b7bd0c57e9cef22ffe5c8 100644
--- a/src/core/iomgr/executor.c
+++ b/src/core/iomgr/executor.c
@@ -82,6 +82,7 @@ static void closure_exec_thread_func(void *ignored) {
     }
     gpr_mu_unlock(&g_executor.mu);
     closure->cb(&exec_ctx, closure->cb_arg, closure->success);
+    grpc_exec_ctx_flush(&exec_ctx);
   }
   grpc_exec_ctx_finish(&exec_ctx);
 }