diff --git a/docs/interfaces/websocketadapter.html b/docs/interfaces/websocketadapter.html
index 2aba79fa4f..7b8caa4ed4 100644
--- a/docs/interfaces/websocketadapter.html
+++ b/docs/interfaces/websocketadapter.html
@@ -266,7 +266,7 @@
Returns
- removeEventListener
+ Optional removeEventListener
- removeEventListener(handler: string, eventListener: EventListener): void
diff --git a/src/signalingclient/DefaultSignalingClient.ts b/src/signalingclient/DefaultSignalingClient.ts
index 78859db506..121e137945 100644
--- a/src/signalingclient/DefaultSignalingClient.ts
+++ b/src/signalingclient/DefaultSignalingClient.ts
@@ -220,13 +220,13 @@ export default class DefaultSignalingClient implements SignalingClient {
DefaultSignalingClient.CLOSE_EVENT_TIMEOUT_MS
);
const handler = (event: CloseEvent): void => {
- this.webSocket.removeEventListener('close', handler);
+ this.webSocket?.removeEventListener('close', handler);
scheduler.stop();
this.closeEventHandler(event);
};
// Remove the existing close handler to prevent SDK from opening a new connection.
- this.webSocket.removeEventListener('close', this.closeEventHandler);
+ this.webSocket?.removeEventListener('close', this.closeEventHandler);
this.webSocket.addEventListener('close', handler);
scheduler.start(() => {
handler(
diff --git a/src/websocketadapter/WebSocketAdapter.ts b/src/websocketadapter/WebSocketAdapter.ts
index c56adfd276..61c999818b 100644
--- a/src/websocketadapter/WebSocketAdapter.ts
+++ b/src/websocketadapter/WebSocketAdapter.ts
@@ -47,7 +47,7 @@ export default interface WebSocketAdapter {
* @param handler The handler being assigned.
* @param eventListener The event listener to add.
*/
- removeEventListener(handler: string, eventListener: EventListener): void;
+ removeEventListener?(handler: string, eventListener: EventListener): void;
/**
* Returns the ready state.