diff --git a/util/kubernetes/client/watch.go b/util/kubernetes/client/watch.go
index c55a406a..833ee534 100644
--- a/util/kubernetes/client/watch.go
+++ b/util/kubernetes/client/watch.go
@@ -98,10 +98,12 @@ func newWatcher(req *api.Request) (Watcher, error) {
 	// do the raw request
 	res, err := req.Raw()
 	if err != nil {
+		cancel()
 		return nil, err
 	}
 
 	if res.StatusCode < 200 || res.StatusCode >= 300 {
+		cancel()
 		// close the response body
 		res.Body.Close()
 		// return an error