diff --git a/src/core/surface/completion_queue.c b/src/core/surface/completion_queue.c
index 060a8ff54a8b3ec649d702903f544f3100e7db1e..48910afda334c434c1c7f14cdeb8c73dc7bb3e3d 100644
--- a/src/core/surface/completion_queue.c
+++ b/src/core/surface/completion_queue.c
@@ -213,6 +213,7 @@ grpc_event grpc_completion_queue_next(grpc_completion_queue *cc,
       gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset));
       memset(&ret, 0, sizeof(ret));
       ret.type = GRPC_QUEUE_TIMEOUT;
+      GRPC_SURFACE_TRACE_RETURNED_EVENT(cc, &ret);
       return ret;
     }
   }
@@ -274,6 +275,7 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
       gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset));
       memset(&ret, 0, sizeof(ret));
       ret.type = GRPC_QUEUE_TIMEOUT;
+      GRPC_SURFACE_TRACE_RETURNED_EVENT(cc, &ev->base);
       return ret;
     }
   }