musistudio/claude-code-router · warning
[plugin-marketplace] Failed to load marketplace entry: ${for
Error message
[plugin-marketplace] Failed to load marketplace entry: ${formatError(error)} What it means
Warned per-entry by normalizeMarketplaceManifest when normalizing a single marketplace entry (normalizeMarketplaceEntry) throws — e.g. the entry lacks required fields, has an invalid id/version/source URL, or its type fails validation. The entry is skipped with continue and the rest of the manifest loads normally.
Source
Thrown at packages/core/src/plugins/marketplace.ts:97
return [];
}
}
async function normalizeMarketplaceManifest(
value: unknown,
manifestUrl: string,
options: { offline?: boolean } = {}
): Promise<PluginMarketplaceEntry[]> {
const items = marketplaceItems(value);
const entries: PluginMarketplaceEntry[] = [];
const seen = new Set<string>();
for (const item of items) {
let entry: PluginMarketplaceEntry | undefined;
try {
entry = await normalizeMarketplaceEntry(item, manifestUrl, options);
} catch (error) {
console.warn(`[plugin-marketplace] Failed to load marketplace entry: ${formatError(error)}`);
continue;
}
if (!entry || seen.has(entry.id)) {
continue;
}
seen.add(entry.id);
entries.push(entry);
}
return entries;
}
function marketplaceItems(value: unknown): unknown[] {
if (Array.isArray(value)) {
return value;
}
if (!isRecord(value)) {
return [];View on GitHub (pinned to 99f24806c6)
Solutions
- Read the per-entry error to identify which entry is invalid, then ignore it — the rest of the marketplace still works.
- If you publish the marketplace, fix or remove the offending entry.
- Upgrade the core package so newer entry schemas are recognized.
Defensive patterns
Strategy: validation
Validate before calling
null
Type guard
null
Try / catch
null
Prevention
- Expect individual bad entries to be skipped automatically
- Keep core package updated for new entry schemas
- Validate entries if you author a marketplace manifest
When it happens
Trigger: A marketplace manifest containing one malformed entry (missing id, bad URL, wrong plugin kind), or an entry format the current package version does not understand.
Common situations: Marketplace authors publish an entry with a typo; schema evolution adds required fields that old entries lack; the installed core version is older than the manifest schema.
Related errors
- Provider manifest must be a JSON object.
- ${label} is too long.
- Provider manifest URL must use https.
- Provider manifest URL is invalid.
- Unsupported provider protocol: ${value}
AI-assisted analysis of musistudio/claude-code-router@99f24806c6 (2026-08-27).
Data as JSON: /api/errors/6cd0edcc50ca75e6.
Report an issue: GitHub.