@@ -132,31 +132,24 @@ async function activatePlugin(
132132 const trans = translator . load ( 'jupyterlab' ) ;
133133 const api = new SchedulerService ( { } ) ;
134134
135- // Try calling an API to verify that the server extension is actually installed
136- let serverExtensionOk = false ;
137- try {
138- await api . getJobs ( { max_items : 0 } )
139- serverExtensionOk = true ;
140- } catch ( responseError : unknown ) {
141- const responseCode = ( responseError as ServerConnection . ResponseError ) . response . status ;
142- // Treat a 404 Not Found response as the backend not being present.
143- if ( responseCode === 404 ) {
135+ // Call API to verify that the server extension is actually installed
136+ try {
137+ await api . getJobs ( { max_items : 0 } ) ;
138+ } catch ( e : unknown ) {
139+ // in case of 404, show missing server extension dialog and return
140+ if (
141+ e instanceof ServerConnection . ResponseError &&
142+ e . response . status === 404
143+ ) {
144144 showDialog ( {
145145 title : trans . __ ( 'Jupyter Scheduler server extension not found' ) ,
146146 body : SERVER_EXTENSION_404_JSX ,
147147 buttons : [ Dialog . okButton ( ) ]
148148 } ) . catch ( console . warn ) ;
149- } else {
150- // Treat other response codes as transient errors; optimistically hope that
151- // server extension is present
152- serverExtensionOk = true ;
149+ return ;
153150 }
154151 }
155152
156- if ( ! serverExtensionOk ) {
157- return ; // Don't activate the rest of the plugin
158- }
159-
160153 const { commands } = app ;
161154 const fileBrowserTracker = browserFactory . tracker ;
162155 const widgetTracker = new WidgetTracker < MainAreaWidget < NotebookJobsPanel > > ( {
0 commit comments