When installing the JupyterLab extension on a 'fresh' setup, if you haven't restarted the Jupyter server, then all requests to /serverconfig/ fail. The registerUdps() function throws an error in this case (reasonable), but the widget loader doesn't handle this error. The text TypeError: failed to fetch replaces any dashboard widget on the page, offering no resolution or even hint at what's wrong.
The widgets should handle this error, displaying a dialog to inform users of the problem and resolution. It's reasonable to refuse to load after this, but there's technically nothing stopping us from continuing anyway. UDPs just wouldn't work.
User-impact: When installing on a random Binderhub, the user must restart the Jupyter server to get the new server endpoint setup. AFAICT, Binder doesn't let you do this, so in this case the user is simply stuck. More relevantly, any new user must restart the Jupyter server that they're running in order to setup everything successfully. This may not be something they think to do when installing everything.
When installing the JupyterLab extension on a 'fresh' setup, if you haven't restarted the Jupyter server, then all requests to
/serverconfig/
fail. TheregisterUdps()
function throws an error in this case (reasonable), but the widget loader doesn't handle this error. The textTypeError: failed to fetch
replaces any dashboard widget on the page, offering no resolution or even hint at what's wrong.The widgets should handle this error, displaying a dialog to inform users of the problem and resolution. It's reasonable to refuse to load after this, but there's technically nothing stopping us from continuing anyway. UDPs just wouldn't work.
User-impact: When installing on a random Binderhub, the user must restart the Jupyter server to get the new server endpoint setup. AFAICT, Binder doesn't let you do this, so in this case the user is simply stuck. More relevantly, any new user must restart the Jupyter server that they're running in order to setup everything successfully. This may not be something they think to do when installing everything.