{"record":{"id":"0482f7311203b919","repo":"davila7/claude-code-templates","slug":"warning-error-processing-plugin-plugindef-name","errorCode":null,"errorMessage":"Warning: Error processing plugin ${pluginDef.name}","messagePattern":"Warning: Error processing plugin (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cli-tool/src/plugin-dashboard.js","lineNumber":296,"sourceCode":"          // Check if plugin is enabled in settings.json\n          const enabled = await this.isPluginEnabled(pluginDef.name, marketplaceName);\n\n          plugins.push({\n            name: pluginDef.name,\n            version: pluginDef.version || '1.0.0',\n            description: pluginDef.description || 'No description',\n            marketplace: marketplaceName,\n            path: pluginSourcePath,\n            components,\n            author: pluginDef.author,\n            homepage: pluginDef.homepage,\n            license: pluginDef.license,\n            keywords: pluginDef.keywords || [],\n            category: pluginDef.category,\n            enabled\n          });\n        } catch (error) {\n          console.warn(chalk.yellow(`Warning: Error processing plugin ${pluginDef.name}`), error.message);\n        }\n      }\n    } catch (error) {\n      console.warn(chalk.yellow(`Warning: Error loading plugins from marketplace ${marketplaceName}`), error.message);\n    }\n\n    return plugins;\n  }\n\n  async isPluginEnabled(pluginName, marketplace) {\n    // Check if plugin is enabled in settings.json\n    // Plugins are stored as \"plugin-name@marketplace-name\": true\n    const pluginKey = `${pluginName}@${marketplace}`;\n    return this.enabledPlugins && this.enabledPlugins.has(pluginKey);\n  }\n\n  async countPluginComponents(pluginPath) {\n    const components = {","sourceCodeStart":278,"sourceCodeEnd":314,"githubUrl":"https://github.com/davila7/claude-code-templates/blob/a0851ed10c7c60463dac8cfaaca124cf32d5804d/cli-tool/src/plugin-dashboard.js#L278-L314","documentation":"While iterating a marketplace's plugin definitions, each plugin's processing (reading its local folder, computing enabled state, parsing metadata) is individually wrapped; this warning fires when one pluginDef fails — most often its source path doesn't resolve inside the marketplace clone or its metadata shape is unexpected. Remaining plugins still load.","triggerScenarios":"A marketplace entry whose source points to a folder missing from the local clone (repo changed layout after you installed), a pluginDef with a non-string source, or per-plugin enabled-state lookup throwing on a malformed settings entry.","commonSituations":"Marketplace upstream reorganizes plugin folders, stale local clones that haven't been pulled, or custom marketplaces with hand-written entries that don't follow the source-path convention.","solutions":["Update the marketplace clone: `cd ~/.claude/plugins/marketplaces/<name> && git pull` (or reinstall it).","Verify the pluginDef.source path exists inside the marketplace directory.","Remove the offending entry if it references a plugin the marketplace no longer ships.","Re-run the dashboard after fixing; the warning names the plugin (pluginDef.name) making it easy to locate."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const pluginPath = path.join(marketplacePath, pluginDef.source || '');\nif (!fs.existsSync(pluginPath)) continue; // stale entry, skip","typeGuard":"const isPluginDef = (v) => v != null && typeof v.name === 'string' && (typeof v.source === 'string' || v.source == null);","tryCatchPattern":"catch (e) { console.warn(`Skipping marketplace plugin ${pluginDef.name}:`, e.message); }","preventionTips":["Re-sync marketplace clones after upstream layout changes.","Skip and report stale plugin entries instead of failing the whole marketplace.","Log pluginDef.source with the warning for faster diagnosis."],"tags":["marketplace","plugin","path-resolution"],"backgroundTag":"marketplace-plugin-path-missing","analyzedSha":"a0851ed10c7c60463dac8cfaaca124cf32d5804d","analyzedAt":"2026-08-28T14:11:56.058Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}