Y-webserver intermittent closing

I am using the standard issue y-websocket (v1.4.5) and levelDB persistence. For a long time (i.e. months), I have seen intermittent warnings in the DevTools console as shown in this extract:

00:20:51:663  remote content loaded from wss://www.prsm.uk/wss
y-websocket.js:219 WebSocket is already in CLOSING or CLOSED state.
broadcastMessage @ y-websocket.js:219
WebsocketProvider._awarenessUpdateHandler @ y-websocket.js:351
(anonymous) @ observable.js:73
emit @ observable.js:73
setLocalState @ awareness.js:134
setLocalStateField @ awareness.js:144
(anonymous) @ prsm.js:4377
setInterval (async)
setUpAwareness @ prsm.js:4376
(anonymous) @ prsm.js:186
load (async)
7TS1A.yjs @ prsm.js:177
newRequire @ prsm.0bf47350.js:71
(anonymous) @ prsm.0bf47350.js:122
(anonymous) @ prsm.0bf47350.js:145
prsm.js:796 00:26:58:12  remote content loaded from wss://www.prsm.uk/wss
prsm.js:371 00:26:58:12 disconnected from room LJO-JOQ-MWN-XNF
prsm.js:371 00:26:58:410 connecting from room LJO-JOQ-MWN-XNF
prsm.js:371 00:26:58:471 connected to room LJO-JOQ-MWN-XNF
prsm.js:796 00:26:58:490  remote content loaded from wss://www.prsm.uk/wss
y-websocket.js:219 WebSocket is already in CLOSING or CLOSED state.
broadcastMessage @ y-websocket.js:219
WebsocketProvider._awarenessUpdateHandler @ y-websocket.js:351
(anonymous) @ observable.js:73
emit @ observable.js:73
setLocalState @ awareness.js:134
setLocalStateField @ awareness.js:144
(anonymous) @ prsm.js:4377
setInterval (async)
setUpAwareness @ prsm.js:4376
(anonymous) @ prsm.js:186
load (async)
7TS1A.yjs @ prsm.js:177
newRequire @ prsm.0bf47350.js:71
(anonymous) @ prsm.0bf47350.js:122
(anonymous) @ prsm.0bf47350.js:145
prsm.js:796 00:40:47:233  remote content loaded from wss://www.prsm.uk/wss
prsm.js:371 00:40:47:233 disconnected from room LJO-JOQ-MWN-XNF
prsm.js:371 00:40:48:417 connecting from room LJO-JOQ-MWN-XNF
prsm.js:371 00:40:48:496 connected to room LJO-JOQ-MWN-XNF
prsm.js:796 00:40:48:521  remote content loaded from wss://www.prsm.uk/wss
y-websocket.js:219 WebSocket is already in CLOSING or CLOSED state.
broadcastMessage @ y-websocket.js:219
WebsocketProvider._awarenessUpdateHandler @ y-websocket.js:351
(anonymous) @ observable.js:73
emit @ observable.js:73
setLocalState @ awareness.js:134
setLocalStateField @ awareness.js:144
(anonymous) @ prsm.js:4377
setInterval (async)
setUpAwareness @ prsm.js:4376
(anonymous) @ prsm.js:186
load (async)
7TS1A.yjs @ prsm.js:177
newRequire @ prsm.0bf47350.js:71
(anonymous) @ prsm.0bf47350.js:122
(anonymous) @ prsm.0bf47350.js:145
prsm.js:796 00:45:56:962  remote content loaded from wss://www.prsm.uk/wss
prsm.js:371 00:45:56:962 disconnected from room LJO-JOQ-MWN-XNF
prsm.js:371 00:45:57:465 connecting from room LJO-JOQ-MWN-XNF
prsm.js:371 00:45:57:524 connected to room LJO-JOQ-MWN-XNF
prsm.js:796 00:45:57:542  remote content loaded from wss://www.prsm.uk/wss
y-websocket.js:219 WebSocket is already in CLOSING or CLOSED state.
broadcastMessage @ y-websocket.js:219
WebsocketProvider._awarenessUpdateHandler @ y-websocket.js:351
(anonymous) @ observable.js:73
emit @ observable.js:73
setLocalState @ awareness.js:134
setLocalStateField @ awareness.js:144
(anonymous) @ prsm.js:4377
setInterval (async)
setUpAwareness @ prsm.js:4376
(anonymous) @ prsm.js:186
load (async)
7TS1A.yjs @ prsm.js:177
newRequire @ prsm.0bf47350.js:71
(anonymous) @ prsm.0bf47350.js:122
(anonymous) @ prsm.0bf47350.js:145
prsm.js:796 00:52:57:181  remote content loaded from wss://www.prsm.uk/wss
prsm.js:371 00:52:57:181 disconnected from room LJO-JOQ-MWN-XNF
prsm.js:371 

These messages about WebSocket is already in CLOSING or CLOSED state occur every few minutes, but not in a regular pattern.

Sometimes, I get the disconnect and reconnection, but without the CLOSING message, e.g.

...
11:24:56:752  remote content loaded from wss://www.prsm.uk/wss
11:27:24:698  remote content loaded from wss://www.prsm.uk/wss
1:27:24:699 disconnected from room JBT-BCC-BBS-TBP
11:27:24:808 connecting from room JBT-BCC-BBS-TBP
1:27:24:841 connected to room JBT-BCC-BBS-TBP
11:27:25:23  remote content loaded from wss://www.prsm.uk/wss
...

I see similar messages on client browsers at other sites, so it is not likely to be an issue arising from the quality of the specific internet connection.

The issue doesn’t seem to have any operational effect, and is just a nuisance, but I would like to stop it. Is there a parameter in y-websocket that I can adjust to make it less sensitive to interruptions, or should I be looking elsewhere?

Further details: the y-websocket server is running on an AWS EC2 instance with plenty of RAM and CPU cycles to spare.

1 Like