From 4b2e8281af077f0514494adcc17a901ee87fbbe2 Mon Sep 17 00:00:00 2001 From: martinRenou Date: Wed, 1 Sep 2021 10:34:08 +0200 Subject: [PATCH] Handle the case when one widget model fails to be created --- packages/voila/src/manager.ts | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/voila/src/manager.ts b/packages/voila/src/manager.ts index 1724bae09..46672c5f8 100644 --- a/packages/voila/src/manager.ts +++ b/packages/voila/src/manager.ts @@ -217,18 +217,23 @@ export class WidgetManager extends JupyterLabManager { await Promise.all( widgets_info.map(async widget_info => { const state = (widget_info as any).msg.content.data.state; - const modelPromise = this.new_model( - { - model_name: state._model_name, - model_module: state._model_module, - model_module_version: state._model_module_version, - comm: (widget_info as any).comm - }, - state - ); - const model = await modelPromise; - models[model.model_id] = model; - return modelPromise; + try { + const modelPromise = this.new_model( + { + model_name: state._model_name, + model_module: state._model_module, + model_module_version: state._model_module_version, + comm: (widget_info as any).comm + }, + state + ); + const model = await modelPromise; + models[model.model_id] = model; + } catch (error) { + // Failed to create a widget model, we continue creating other models so that + // other widgets can render + console.error(error); + } }) ); return models;