davila7/claude-code-templates · warning
Warning: Error loading plugins from marketplace ${marketplac
Error message
Warning: Error loading plugins from marketplace ${marketplaceName} What it means
This warning is emitted by the plugin dashboard's loadPluginsFromMarketplace when any unexpected error escapes the per-plugin processing loop while loading a Claude Code plugin marketplace (parsing .claude-plugin/marketplace.json, reading plugin definitions, or resolving plugin paths). It is a catch-all console.warn, not a thrown exception — the function still returns whatever plugins were collected before the failure. It usually indicates the marketplace JSON is malformed or a plugin entry references a missing/unreadable path.
Source
Thrown at cli-tool/src/plugin-dashboard.js:300
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 = {
agents: 0,
commands: 0,
hooks: 0,
mcps: 0View on GitHub (pinned to a0851ed10c)
Solutions
- Validate the marketplace's .claude-plugin/marketplace.json with a JSON linter (e.g. `npx ajv validate` or `jq . marketplace.json`)
- Check that every plugin entry's source/path resolves to an existing directory under the marketplace root
- Re-clone or restore the marketplace from its canonical source to eliminate partial downloads / uninitialized submodules
- If the schema changed, update the marketplace to the format expected by the current CLI version
Example fix
// before
"plugins": [
{ "name": "my-plugin", "source": "./plugins/my-plugin" }
]
// after (ensure referenced dir exists and JSON is valid)
mkdir -p plugins/my-plugin
echo '{"name":"my-plugin"}' > plugins/my-plugin/.claude-plugin/plugin.json
npx jq . .claude-plugin/marketplace.json > /dev/null && echo OK Defensive patterns
Strategy: validation
Validate before calling
const fs = require('fs-extra');
async function marketplaceLooksValid(dir) {
const mf = path.join(dir, '.claude-plugin', 'marketplace.json');
if (!(await fs.pathExists(mf))) return false;
try {
const data = JSON.parse(await fs.readFile(mf, 'utf8'));
return Array.isArray(data.plugins);
} catch { return false; }
} Try / catch
catch (error) {
console.warn(`Skipping marketplace ${marketplaceName}: ${error.message}`);
return []; // treat as empty marketplace, don't crash the dashboard
} Prevention
- Validate marketplace.json with a JSON linter before adding the marketplace
- Pin marketplace sources to released tags rather than branches
- Run `claude plugin validate` (or equivalent) after hand-editing manifests
When it happens
Trigger: Calling loadPluginsFromMarketplace (or the marketplacePlugins getter) against a marketplace whose .claude-plugin/marketplace.json is invalid JSON, has an unexpected schema (missing plugins array, wrong field names), or contains plugin entries pointing at directories that do not exist or cannot be read (permissions, symlink loops).
Common situations: Hand-edited marketplace.json with trailing commas or comments; marketplace schema changed between Claude Code versions; cloned marketplace repo with submodules not initialized; plugin entries with relative source paths that don't resolve from the marketplace root.
Related errors
- Claude Code projects directory not found at ${this.projectsD
- Warning: Error loading permissions
- Warning: Error loading plugin permissions for ${plugin.name}
- ⚠ Error loading skill ${skillDir}:
- No files were copied from Cloudflare component directory
AI-assisted analysis of davila7/claude-code-templates@a0851ed10c (2026-08-28).
Data as JSON: /api/errors/8355d5bda5949d56.
Report an issue: GitHub.