diff --git a/src/core/ext/client_config/http_connect_handshaker.c b/src/core/ext/client_config/http_connect_handshaker.c
index c649796f42713121e81d2d6131c7455e6bca9dc0..f7d061b2cd1da8e645235c121c9f2f5ca72fcbca 100644
--- a/src/core/ext/client_config/http_connect_handshaker.c
+++ b/src/core/ext/client_config/http_connect_handshaker.c
@@ -100,8 +100,7 @@ static void on_read_done(grpc_exec_ctx* exec_ctx, void* arg,
   }
  done:
   // Invoke handshake-done callback.
-// FIXME: pass error to callback
-  h->cb(exec_ctx, h->endpoint, h->args, h->user_data);
+  h->cb(exec_ctx, h->endpoint, h->args, h->user_data, GRPC_ERROR_REF(error));
 }
 
 //