I’m working on a new deployment of OnDemand and ran into a problem with websockify when trying to get a batch_connect session running. We’re currently running the OnDemand 4.0.7 on Rocky 9.6 using the OSC repo RPMS. The compute nodes that we’re connecting to are running SLES 15.4. I was initially testing with the Suse provided package python-websockify-0.8.0-9.3.1.
It looks like that has been seen a few times in the past the most relevant thread that helped me is here:
https://discourse.openondemand.org/t/novnc-failed-to-connect-to-server-ondemand-3-0-1/2711/30
The relevant errors are from the websockify.log as seen below.
x.x.x.x - - [23/Oct/2025 11:30:29] code 400, message Client must support 'binary' or 'base64' protocol
x.x.x.x - - [23/Oct/2025 11:30:29] code 405, message Method Not Allowed
I tested the change to websock.js that was mentioned in the previous topic
open(uri, protocols) {
//this.attach(new WebSocket(uri, protocols));
this.attach(new WebSocket(uri, ['binary', 'base64']));
}
That worked, but I don’t want to go into production with a change to an RPM provided file so the next thing I tried (after changing the file back) was to install a newer version of websockify using conda. That pulled in 0.13.0 and that worked to fix the problem. I can probably work it out to get that conda environment installed in a shared space that is available to all users, but wanted to make sure that is necessary. Is it possible that I missed something else when using the python3-websockify 0.8.0 package? The documentation still says that 0.8.0 is the minimum required version or is a newer version actually required?
Thanks for any information you can provide.