Shell stopped working due to zero length OOD_SSHHOST_ALLOWLIST

Not sure exactly what went wrong. I didn’t have OOD_SSHHOST_ALLOWLIST defined before, and the shell app worked great. I could open an ssh connection to the cluster just fine. At some point, after making some other (unrelated, I would think) changes, it stopped working. I just get ‘No clusters defined.’ which, checking the underlying pages, means OOD_SSHHOST_ALLOWLIST is zero length? This variable was never defined before and it has always worked great. Running OOD 3.1.7.

root@vh-ood:/var/www/ood/apps/sys/shell# grep -R -C2 'No clust'
app.js-function detect_auth_error(requestToken, client_origin, server_origin, host) {
app.js-  if (host_allowlist.length == 0) {
app.js:    return "No clusters defined.";
app.js-  } else if (client_origin &&
app.js-    client_origin.startsWith('http') &&
root@vh-ood:/var/www/ood/apps/sys/shell# grep -C2 -R host_allowlist
app.js-const wss = new WebSocket.Server({ noServer: true });
app.js-
app.js:let host_allowlist = [];
app.js-if (process.env.OOD_SSHHOST_ALLOWLIST){
app.js:  host_allowlist = Array.from(new Set(process.env.OOD_SSHHOST_ALLOWLIST.split(':')));
app.js-}
app.js-

The cluster does still work, by the way. I’m able to ssh to the login nodes just fine. I’m able to submit an interactive desktop job. I can browse files. I just can’t open the shell app.

so I fixed this by setting this variable. it would be great if the error message was more clear (rather than ‘No clusters defined.’). I didn’t have to worry about this at all at first. after making other changes, this suddenly became an issue. the docs say it should be defined, but clearly it’s hit or miss. I had to dig through source code to figure this out.