diff --git a/public/app/features/dashboard/dashgrid/DashboardPanel.tsx b/public/app/features/dashboard/dashgrid/DashboardPanel.tsx index 2d794bec4d4..b9c56e36382 100644 --- a/public/app/features/dashboard/dashgrid/DashboardPanel.tsx +++ b/public/app/features/dashboard/dashgrid/DashboardPanel.tsx @@ -68,7 +68,7 @@ export class DashboardPanel extends PureComponent { // handle plugin loading & changing of plugin type if (!this.state.plugin || this.state.plugin.id !== pluginId) { - const plugin = config.panels[pluginId] || getPanelPluginNotFound(pluginId); + let plugin = config.panels[pluginId] || getPanelPluginNotFound(pluginId); // remember if this is from an angular panel const fromAngularPanel = this.state.angularPanel != null; @@ -81,10 +81,15 @@ export class DashboardPanel extends PureComponent { } if (plugin.exports) { - this.setState({ plugin: plugin, angularPanel: null }); + this.setState({ plugin, angularPanel: null }); } else { - plugin.exports = await importPluginModule(plugin.module); - this.setState({ plugin: plugin, angularPanel: null }); + try { + plugin.exports = await importPluginModule(plugin.module); + } catch (e) { + plugin = getPanelPluginNotFound(pluginId); + } + + this.setState({ plugin, angularPanel: null }); } } }