diff --git a/session/manager.go b/session/manager.go
index <HASH>..<HASH> 100644
--- a/session/manager.go
+++ b/session/manager.go
@@ -4,6 +4,7 @@ import (
 	"context"
 	"time"
 
+	"github.com/gorilla/websocket"
 	"github.com/mafredri/cdp"
 	"github.com/mafredri/cdp/internal/errors"
 	"github.com/mafredri/cdp/protocol/target"
@@ -79,6 +80,10 @@ func (m *Manager) watch(ev *sessionEvents, created <-chan *session, done, errC c
 				m.cancel()
 				return true
 			}
+			if _, ok := e.(*websocket.CloseError); ok {
+				m.cancel()
+				return true
+			}
 		}
 		if cdp.ErrorCause(err) == context.Canceled {
 			// Manager was closed.
session: allow Manager.watch to take care of websocket errors (#<I>)

Fixes: #<I>