diff --git a/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts b/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts index 22b8ed16604..e5fb3a83a79 100644 --- a/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts +++ b/packages/opentelemetry-node/src/instrumentation/PluginLoader.ts @@ -86,9 +86,13 @@ export class PluginLoader { const alreadyRequiredModules = Object.keys(require.cache); const requiredModulesToHook = modulesToHook.filter( name => - alreadyRequiredModules.find( - cached => require.resolve(name) === cached - ) !== undefined + alreadyRequiredModules.find(cached => { + try { + return require.resolve(name) === cached; + } catch (err) { + return false; + } + }) !== undefined ); if (requiredModulesToHook.length > 0) { this.logger.warn( diff --git a/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts b/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts index 153010d5f70..c762a5c2873 100644 --- a/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts +++ b/packages/opentelemetry-node/test/instrumentation/PluginLoader.test.ts @@ -239,7 +239,7 @@ describe('PluginLoader', () => { }, }; require('already-require-module'); - const pluginLoader = new PluginLoader(registry, verifyWarnLogger); + const pluginLoader = new PluginLoader(provider, verifyWarnLogger); pluginLoader.load(alreadyRequiredPlugins); pluginLoader.unload(); });