davila7/claude-code-templates · warning

Warning: Error processing plugin ${pluginDef.name}

Error message

Warning: Error processing plugin ${pluginDef.name}

What it means

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.

Source

Thrown at cli-tool/src/plugin-dashboard.js:296

          // Check if plugin is enabled in settings.json
          const enabled = await this.isPluginEnabled(pluginDef.name, marketplaceName);

          plugins.push({
            name: pluginDef.name,
            version: pluginDef.version || '1.0.0',
            description: pluginDef.description || 'No description',
            marketplace: marketplaceName,
            path: pluginSourcePath,
            components,
            author: pluginDef.author,
            homepage: pluginDef.homepage,
            license: pluginDef.license,
            keywords: pluginDef.keywords || [],
            category: pluginDef.category,
            enabled
          });
        } catch (error) {
          console.warn(chalk.yellow(`Warning: Error processing plugin ${pluginDef.name}`), error.message);
        }
      }
    } catch (error) {
      console.warn(chalk.yellow(`Warning: Error loading plugins from marketplace ${marketplaceName}`), error.message);
    }

    return plugins;
  }

  async isPluginEnabled(pluginName, marketplace) {
    // Check if plugin is enabled in settings.json
    // Plugins are stored as "plugin-name@marketplace-name": true
    const pluginKey = `${pluginName}@${marketplace}`;
    return this.enabledPlugins && this.enabledPlugins.has(pluginKey);
  }

  async countPluginComponents(pluginPath) {
    const components = {

View on GitHub (pinned to a0851ed10c)

Solutions

  1. Update the marketplace clone: `cd ~/.claude/plugins/marketplaces/<name> && git pull` (or reinstall it).
  2. Verify the pluginDef.source path exists inside the marketplace directory.
  3. Remove the offending entry if it references a plugin the marketplace no longer ships.
  4. Re-run the dashboard after fixing; the warning names the plugin (pluginDef.name) making it easy to locate.
Defensive patterns

Strategy: validation

Validate before calling

const pluginPath = path.join(marketplacePath, pluginDef.source || '');
if (!fs.existsSync(pluginPath)) continue; // stale entry, skip

Type guard

const isPluginDef = (v) => v != null && typeof v.name === 'string' && (typeof v.source === 'string' || v.source == null);

Try / catch

catch (e) { console.warn(`Skipping marketplace plugin ${pluginDef.name}:`, e.message); }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of davila7/claude-code-templates@a0851ed10c (2026-08-28). Data as JSON: /api/errors/0482f7311203b919. Report an issue: GitHub.